# 审计记录:迁移脚本合并到主 DDL 并归档 - 日期:2026-03-24 - Prompt:db\zqyy_app\migrations 目录下的 DDL,能合并到主 DDL 里么?能合并的,合并后归档散落的 DDL - 直接原因:23 个迁移脚本散落在 migrations 目录,其中 20 个的 DDL 变更已可合并到 `docs/database/ddl/` 主基线文件 ## 改动方案 将 3 个此前未合并的迁移脚本内容补充到对应主 DDL 文件,然后将所有已合并的 20 个迁移脚本移动到 `_archived/` 目录。保留 3 个不可合并的脚本(含数据迁移/跨库操作)在原位。 ## 文件清单 ### 修改的主 DDL 文件 | 文件 | 变更内容 | |------|----------| | `docs/database/ddl/zqyy_app__auth.sql` | 新增 `idx_tenant_admins_username_lower` 唯一索引 | | `docs/database/ddl/zqyy_app__public.sql` | 新增 `min_run_intervals JSONB` 列到 `scheduled_tasks` 表 | | `docs/database/ddl/fdw.sql` | 新增 board 看板 3 个 RLS 视图的 LIMIT TO 导入 | ### 归档的迁移脚本(20 个) 移动至 `db/zqyy_app/migrations/_archived/`: - 2026-03-18__rns1_add_score_to_notes.sql - 2026-03-19_import_board_fdw_tables.sql - 2026-03-20__ns4_member_clue_is_hidden.sql - 2026-03-20__ns4_tenant_admin_tables.sql - 2026-03-20__rns14_chat_module_extend.sql - 2026-03-22__add_config_to_execution_log.sql - 2026-03-22__ns41_registry_tables.sql - 2026-03-22__p14_ai_module.sql - 2026-03-22__p16_min_run_interval.sql - 2026-03-23__add_head_coach_manager_roles.sql - 2026-03-23__add_rejection_count_and_cancelled_status.sql - 2026-03-23__case_insensitive_username.sql - 2026-03-23__p15_ai_monitoring.sql - 2026-03-23__scheduled_tasks_per_task_intervals.sql - 2026-03-23__trigger_jobs_last_error.sql - 2026-03-24__p17_task_engine_ownership.sql - 2026-03-24__p18_task_engine_dashboard.sql - 20260320_add_admin_users_roles.sql - 20260324_add_avatar_url_to_users.sql - 20260324_soft_delete_user_site_roles_and_binding.sql ### 保留在原位的不可合并脚本(3 个) | 文件 | 原因 | |------|------| | `2026-03-20_rebuild_rls_view_gift_breakdown.sql` | ETL 库视图变更,非 zqyy_app DDL | | `2026-03-20_refresh_fdw_finance_recharge_summary.sql` | FDW 外部表动态导入,运行时操作 | | `2026-03-23__cleanup_roles_add_admin_type.sql` | 包含数据迁移(删除角色),不可合并为基线 | ## 风险评估 - 低风险:仅文档基线同步,不影响运行中的数据库 - 归档脚本仍可在 `_archived/` 中查阅历史 ## 回滚 - 从 `_archived/` 移回 `migrations/` 即可恢复原状 - 主 DDL 文件通过 git revert 回退 ## 验证 - `db/zqyy_app/migrations/` 目录仅保留 3 个不可合并脚本 + `.gitkeep` + `_archived/` - 主 DDL 文件中新增内容与对应迁移脚本一致