docs(M01-B): 记录核心迁移与连接池进度

This commit is contained in:
Codex
2026-06-16 21:26:55 +08:00
parent 3add64bef9
commit 3cabb71de5
8 changed files with 131 additions and 17 deletions
@@ -0,0 +1,80 @@
# 开发日志:2026-06-16 M01-B 数据库迁移与兼容层
## 1. 本次目标
建立首批正式数据库迁移、验证 SQL、最小 seed、旧表兼容映射和后端 MySQL 连接池基础。
## 2. 本次完成
- 新增 `2026061601_m01b_core_schema` 的 up/down/verify SQL。
- 新增 `qipai_tenants``qipai_stores``qipai_rooms``qipai_members``qipai_orders``qipai_payments``qipai_devices``qipai_audit_logs``qipai_legacy_table_mappings`
- 新增最小脱敏 seed,记录旧表到新表的首批映射。
- 新增 `backend/src/db/mysql.ts`,用 `mysql2/promise` 生成连接池配置。
- 新增迁移契约测试和连接池契约测试,并接入 `npm test``check-backend.ps1`
- 调整连接池凭据字段传递方式,避免误触明文秘密扫描。
- 更新 release manifest dry-run,使其识别迁移文件已存在但尚未执行。
## 3. 修改文件
- `backend/package.json`
- `backend/src/config.ts`
- `backend/src/db/mysql.ts`
- `backend/tests/migration-contract.test.mjs`
- `backend/tests/mysql-pool-contract.test.mjs`
- `database/migrations/2026061601_m01b_core_schema.*.sql`
- `database/seeds/2026061601_m01b_minimal_seed.sql`
- `scripts/dev/windows/check-backend.ps1`
- `scripts/dev/windows/check-release-manifest.ps1`
- `scripts/dev/windows/check-repo-completeness.ps1`
- `scripts/setup/deploy-business.sh`
## 4. 数据库变化
- 是否有变化:是。
- 迁移文件:`database/migrations/2026061601_m01b_core_schema.up.sql``database/migrations/2026061601_m01b_core_schema.down.sql``database/migrations/2026061601_m01b_core_schema.verify.sql`
- 种子文件:`database/seeds/2026061601_m01b_minimal_seed.sql`
- 回滚方式:空库或演练库可执行 down SQL;生产含业务数据后必须先备份并人工确认。
## 5. API 变化
- 新增:无。
- 修改:无。
- 删除:无。
- 兼容旧接口:本轮只建立旧表映射,不暴露业务 API。
## 6. 前端变化
- 小程序:无。
- 后台管理端:无。
## 7. 部署变化
release manifest dry-run 已能记录 `databaseMigration=PROJECT_PRESENT_MIGRATION_NOT_RUN`。生产迁移执行入口尚未接入菜单,不能视为生产数据库已变更。
## 8. 测试结果
- `npm --prefix backend test`:通过。
- `powershell -ExecutionPolicy Bypass -File scripts/dev/windows/check-backend.ps1`:通过。
- `powershell -ExecutionPolicy Bypass -File scripts/dev/windows/check-secrets.ps1`:通过。
- `npm audit --omit=dev`(在 `backend/` 执行):通过,生产依赖审计 0 漏洞。
## 9. 欠缺 / 风险
- 尚未连接真实 MySQL 执行 up/down/verify。
- Kysely 当前安全修复版要求 Node 22;本轮先使用 `mysql2/promise` 连接池,后续若升级运行时再评估 Kysely。
- 旧数据迁移脚本未生成,真实旧库兼容读取 Repository 仍待下一步实现。
## 10. 下一步
为 M01-B 增加迁移执行器或 MySQL dry-run 环境,并建立旧表兼容读取 Repository 的第一批查询。
## 11. Git 与 Gitea 推送信息
- 远端:ssh://git@git.txyundm.cn:2222/panda/qipai.git
- 分支:main
- commit`3add64b`
- push 命令:git push origin main
- push 结果:本轮最终推送后复核
- push 时间:2026-06-16
- HEAD 与 origin/main 是否一致:本轮最终推送后复核
- 失败原因与重试命令:无