# 审计记录：迁移脚本合并到主 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 文件中新增内容与对应迁移脚本一致
