fix(sql): fix sql script

This commit is contained in:
2026-01-31 11:11:55 +08:00
parent ce12b997f4
commit d071e1a27d
32 changed files with 1687 additions and 133 deletions

View File

@@ -0,0 +1,74 @@
DO $$
BEGIN
IF to_regclass('public.tenants') IS NULL THEN
RAISE EXCEPTION 'missing table: tenants';
END IF;
IF to_regclass('public.users') IS NULL THEN
RAISE EXCEPTION 'missing table: users';
END IF;
IF to_regclass('public.roles') IS NULL THEN
RAISE EXCEPTION 'missing table: roles';
END IF;
IF to_regclass('public.permissions') IS NULL THEN
RAISE EXCEPTION 'missing table: permissions';
END IF;
IF to_regclass('public.user_roles') IS NULL THEN
RAISE EXCEPTION 'missing table: user_roles';
END IF;
IF to_regclass('public.role_permissions') IS NULL THEN
RAISE EXCEPTION 'missing table: role_permissions';
END IF;
IF to_regclass('public.refresh_tokens') IS NULL THEN
RAISE EXCEPTION 'missing table: refresh_tokens';
END IF;
IF to_regclass('public.audit_logs') IS NULL THEN
RAISE EXCEPTION 'missing table: audit_logs';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'tenants' AND column_name = 'status'
) THEN
RAISE EXCEPTION 'tenants.status missing';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'tenants' AND column_name = 'config'
) THEN
RAISE EXCEPTION 'tenants.config missing';
END IF;
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = 'public' AND table_name = 'users' AND column_name = 'mfa_enabled'
) THEN
RAISE EXCEPTION 'users.mfa_enabled missing';
END IF;
IF NOT EXISTS (
SELECT 1
FROM pg_indexes
WHERE schemaname = 'public' AND tablename = 'users' AND indexname = 'idx_users_tenant_email'
) THEN
RAISE EXCEPTION 'missing index: idx_users_tenant_email';
END IF;
IF NOT EXISTS (
SELECT 1
FROM pg_constraint c
JOIN pg_class t ON t.oid = c.conrelid
WHERE t.relname = 'users' AND c.contype = 'f' AND pg_get_constraintdef(c.oid) LIKE 'FOREIGN KEY (tenant_id)%'
) THEN
RAISE EXCEPTION 'missing foreign key users.tenant_id -> tenants.id';
END IF;
IF NOT EXISTS (
SELECT 1 FROM tenants WHERE id = '11111111-1111-1111-1111-111111111111'
) THEN
RAISE EXCEPTION 'missing seed tenant Default Corp';
END IF;
IF NOT EXISTS (SELECT 1 FROM permissions WHERE code = 'user:read') THEN
RAISE EXCEPTION 'missing seed permission user:read';
END IF;
END $$;

View File

@@ -0,0 +1,31 @@
DO $$
BEGIN
IF to_regclass('public.apps') IS NULL THEN
RAISE EXCEPTION 'missing table: apps';
END IF;
IF to_regclass('public.tenant_entitlements') IS NULL THEN
RAISE EXCEPTION 'missing table: tenant_entitlements';
END IF;
IF to_regclass('public.tenant_enabled_apps_history') IS NULL THEN
RAISE EXCEPTION 'missing table: tenant_enabled_apps_history';
END IF;
IF NOT EXISTS (
SELECT 1 FROM tenants WHERE id = '00000000-0000-0000-0000-000000000001'
) THEN
RAISE EXCEPTION 'missing seed tenant Platform';
END IF;
IF NOT EXISTS (SELECT 1 FROM permissions WHERE code = 'iam:tenant:enabled_apps:write') THEN
RAISE EXCEPTION 'missing seed permission iam:tenant:enabled_apps:write';
END IF;
IF NOT EXISTS (SELECT 1 FROM apps WHERE id = 'tms') THEN
RAISE EXCEPTION 'missing seed app tms';
END IF;
IF NOT EXISTS (SELECT 1 FROM tenant_entitlements WHERE tenant_id = '11111111-1111-1111-1111-111111111111') THEN
RAISE EXCEPTION 'missing tenant_entitlements row for Default Corp';
END IF;
END $$;