| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- -- Migration: Rename system tables with __sys_ prefix
- -- This separates internal platform tables from user-created tables
- -- Step 1: Drop foreign key constraints
- ALTER TABLE api_keys DROP CONSTRAINT IF EXISTS api_keys_created_by_fkey;
- ALTER TABLE applications DROP CONSTRAINT IF EXISTS applications_created_by_fkey;
- ALTER TABLE deployments DROP CONSTRAINT IF EXISTS deployments_application_id_fkey;
- ALTER TABLE audit_logs DROP CONSTRAINT IF EXISTS audit_logs_user_id_fkey;
- ALTER TABLE sessions DROP CONSTRAINT IF EXISTS sessions_user_id_fkey;
- -- Step 2: Rename tables
- ALTER TABLE users RENAME TO __sys_users;
- ALTER TABLE sessions RENAME TO __sys_sessions;
- ALTER TABLE api_keys RENAME TO __sys_api_keys;
- ALTER TABLE applications RENAME TO __sys_applications;
- ALTER TABLE deployments RENAME TO __sys_deployments;
- ALTER TABLE audit_logs RENAME TO __sys_audit_logs;
- -- Step 3: Recreate foreign key constraints with new table names
- ALTER TABLE __sys_api_keys
- ADD CONSTRAINT __sys_api_keys_created_by_fkey
- FOREIGN KEY (created_by) REFERENCES __sys_users(id) ON DELETE SET NULL;
- ALTER TABLE __sys_applications
- ADD CONSTRAINT __sys_applications_created_by_fkey
- FOREIGN KEY (created_by) REFERENCES __sys_users(id) ON DELETE SET NULL;
- ALTER TABLE __sys_deployments
- ADD CONSTRAINT __sys_deployments_application_id_fkey
- FOREIGN KEY (application_id) REFERENCES __sys_applications(id) ON DELETE CASCADE;
- ALTER TABLE __sys_audit_logs
- ADD CONSTRAINT __sys_audit_logs_user_id_fkey
- FOREIGN KEY (user_id) REFERENCES __sys_users(id) ON DELETE SET NULL;
- ALTER TABLE __sys_sessions
- ADD CONSTRAINT __sys_sessions_user_id_fkey
- FOREIGN KEY (user_id) REFERENCES __sys_users(id) ON DELETE CASCADE;
- -- Step 4: Rename indexes
- ALTER INDEX IF EXISTS users_pkey RENAME TO __sys_users_pkey;
- ALTER INDEX IF EXISTS idx_users_email RENAME TO __sys_idx_users_email;
- ALTER INDEX IF EXISTS idx_users_email_verified RENAME TO __sys_idx_users_email_verified;
- ALTER INDEX IF EXISTS users_email_key RENAME TO __sys_users_email_key;
- ALTER INDEX IF EXISTS sessions_pkey RENAME TO __sys_sessions_pkey;
- ALTER INDEX IF EXISTS idx_sessions_user_id RENAME TO __sys_idx_sessions_user_id;
- ALTER INDEX IF EXISTS idx_sessions_token_hash RENAME TO __sys_idx_sessions_token_hash;
- ALTER INDEX IF EXISTS api_keys_pkey RENAME TO __sys_api_keys_pkey;
- ALTER INDEX IF EXISTS api_keys_key_hash_key RENAME TO __sys_api_keys_key_hash_key;
- ALTER INDEX IF EXISTS applications_pkey RENAME TO __sys_applications_pkey;
- ALTER INDEX IF EXISTS applications_slug_key RENAME TO __sys_applications_slug_key;
- ALTER INDEX IF EXISTS idx_applications_status RENAME TO __sys_idx_applications_status;
- ALTER INDEX IF EXISTS deployments_pkey RENAME TO __sys_deployments_pkey;
- ALTER INDEX IF EXISTS idx_deployments_app_id RENAME TO __sys_idx_deployments_app_id;
- ALTER INDEX IF EXISTS audit_logs_pkey RENAME TO __sys_audit_logs_pkey;
- ALTER INDEX IF EXISTS idx_audit_logs_user_id RENAME TO __sys_idx_audit_logs_user_id;
- ALTER INDEX IF EXISTS idx_audit_logs_created_at RENAME TO __sys_idx_audit_logs_created_at;
- -- Step 5: Drop and recreate triggers with new table names
- DROP TRIGGER IF EXISTS update_users_updated_at ON __sys_users;
- DROP TRIGGER IF EXISTS update_applications_updated_at ON __sys_applications;
- CREATE TRIGGER update_users_updated_at BEFORE UPDATE ON __sys_users
- FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
- CREATE TRIGGER update_applications_updated_at BEFORE UPDATE ON __sys_applications
- FOR EACH ROW EXECUTE FUNCTION update_updated_at_column();
- -- Verification queries (commented out)
- -- SELECT tablename FROM pg_tables WHERE schemaname = 'public' ORDER BY tablename;
|