将 015–023 双文件冲突线性化为 015–050;提供已有库 schema_migrations 修复脚本;admin Playwright 对齐 /psy/admin/ 预览路径。 Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.3 KiB
Markdown
70 lines
2.3 KiB
Markdown
# Migration renumber — merge collision fix (2026-08-13)
|
||
|
||
## Problem
|
||
|
||
`main`(产品 ECR-009…016)与 Ops 线(ECR-013A…040)合并后,`000015`–`000023` **各有两套** migration。
|
||
本仓 `internal/db.Migrate` 以**完整文件名**为 version,两边都可能被执行,但同号双文件易误导运维,也不兼容 golang-migrate。重编号消除歧义并固定依赖顺序。
|
||
|
||
## Canonical sequence (after fix)
|
||
|
||
| Ver | Name | Origin |
|
||
|-----|------|--------|
|
||
| 015 | ops_commerce | main Ops-D |
|
||
| 016 | ops_system | main Ops-E |
|
||
| 017 | unique_self_profile | main ECR-011 |
|
||
| 018 | admin_rbac | Ops ECR-013A |
|
||
| 019 | account_lifecycle | Ops ECR-013B |
|
||
| 020 | membership_plans | Ops |
|
||
| 021 | redemption_codes | Ops |
|
||
| 022 | ask_ops_read | Ops |
|
||
| 023 | content_safety_filter | Ops |
|
||
| 024 | ask_quality_feedback | Ops |
|
||
| 025 | ai_system_prompts | Ops |
|
||
| 026 | crisis_policies | Ops |
|
||
| 027 | user_avatar | main ECR-015 |
|
||
| 028 | mbti_label | main |
|
||
| 029 | mbti_questions | main |
|
||
| 030 | oejts_mbti | main |
|
||
| 031 | mbti_full_60 | main |
|
||
| 032 | home_daily_tips | main ECR-014 |
|
||
| 033–050 | knowledge…ops_hardening | Ops ECR-023…040 + hardening |
|
||
|
||
`000001`–`000014` 未改。
|
||
|
||
## Fresh database
|
||
|
||
```bash
|
||
# API 使用 internal/db.Migrate(version = 完整 stem,如 000018_admin_rbac)
|
||
cd apps/api && go run ./cmd/server # 或集成测试 setup 会 Migrate
|
||
```
|
||
|
||
空库应写入 **50** 条 `schema_migrations`(已在 `yuxingu_mig_check` 验证)。
|
||
|
||
## Already-applied databases(必做)
|
||
|
||
本仓 version 键是 **完整文件名**(非纯数字)。重编号后若不改 `schema_migrations`,会把已执行过的 SQL **再跑一遍**。
|
||
|
||
对已有库先执行修复脚本:
|
||
|
||
```bash
|
||
psql "$DATABASE_URL" -f scripts/repair-schema-migrations-renumber.sql
|
||
```
|
||
|
||
然后再启动 API / `Migrate`。
|
||
|
||
### A. 可丢弃的开发库
|
||
|
||
重建库后 Migrate。
|
||
|
||
### B. 需保留数据
|
||
|
||
1. 跑 `scripts/repair-schema-migrations-renumber.sql`
|
||
2. 再 Migrate(只会补尚未有的 stem)
|
||
3. 若曾手改脏数据,对照 `SELECT version FROM schema_migrations ORDER BY version` 与本表核对
|
||
|
||
分叉两边「同号不同义」时,必须以**实际 DDL**为准。
|
||
|
||
## Doc debt
|
||
|
||
ESS / Spec 里仍可能写旧号(如「migration 000015 = RBAC」)。以本文件与 `apps/api/migrations/` 文件名为准;后续 ECR 文档可逐步改引用。
|