Initial commit of akmon project

This commit is contained in:
2026-01-20 08:04:15 +08:00
commit 77a2bab985
1309 changed files with 343305 additions and 0 deletions

67
quick_fix_policies.sql Normal file
View File

@@ -0,0 +1,67 @@
-- =====================================================
-- 快速修复策略冲突
-- 解决 "policy already exists" 错误
-- =====================================================
-- 清理 user_roles 表的所有可能策略
DO $$
DECLARE
r RECORD;
BEGIN
-- 删除 user_roles 表的所有策略
FOR r IN
SELECT policyname
FROM pg_policies
WHERE schemaname = 'public'
AND tablename = 'user_roles'
LOOP
EXECUTE format('DROP POLICY IF EXISTS %I ON public.user_roles', r.policyname);
END LOOP;
RAISE NOTICE '✅ 已清理 user_roles 表的所有策略';
END $$;
-- 清理所有消息相关表的策略(如果需要)
DO $$
DECLARE
r RECORD;
BEGIN
-- 删除所有消息相关表的策略
FOR r IN
SELECT schemaname, tablename, policyname
FROM pg_policies
WHERE schemaname = 'public'
AND tablename IN ('ak_messages', 'ak_message_recipients', 'ak_message_groups',
'ak_message_group_members', 'ak_message_templates',
'ak_user_message_preferences', 'ak_message_stats', 'ak_message_types')
LOOP
EXECUTE format('DROP POLICY IF EXISTS %I ON %I.%I',
r.policyname, r.schemaname, r.tablename);
END LOOP;
RAISE NOTICE '✅ 已清理所有消息相关表的策略';
END $$;
-- 验证策略清理结果
DO $$
DECLARE
policy_count INTEGER;
BEGIN
SELECT COUNT(*) INTO policy_count
FROM pg_policies
WHERE schemaname = 'public'
AND tablename IN ('user_roles', 'ak_messages', 'ak_message_recipients', 'ak_message_groups',
'ak_message_group_members', 'ak_message_templates',
'ak_user_message_preferences', 'ak_message_stats', 'ak_message_types');
IF policy_count = 0 THEN
RAISE NOTICE '🎉 策略清理完成: 所有冲突策略已删除';
ELSE
RAISE NOTICE '⚠️ 仍有 % 个策略存在,可能需要手动检查', policy_count;
END IF;
END $$;
-- 完成消息
SELECT
'✅ 策略冲突已解决' as status,
'现在可以重新运行您的SQL脚本' as message;