This commit is contained in:
2026-09-19 17:30:20 +08:00
parent 9a7b1bb2b8
commit aa2953172b
20 changed files with 625 additions and 1 deletions
+24
View File
@@ -60,6 +60,30 @@
- 模块 `src/main/resources/db/` 用作结构来源和开发追溯,不是区域部署前置;不再向历史迁移文件追加发布步骤。修改当前字段时同步模块有效建表定义及其合同。
- 不在 SQL 中写入真实客户数据、环境地址、固定密码或 Token。
## 后续迁移工具(已开始实施)
机制启用前,以上两份统一 SQL 仍是空库初始化的唯一入口;本节工具不会修改已有数据库,也不会把当前可丢弃的开发/测试存量转换成迁移链。
迁移范围映射位于 `migration-scopes.json`,按区域、schema、所属服务和顺序登记。迁移文件位于 `migrations/{cn|overseas}/<schema>/`,一个文件只允许修改一个 schema。目录中的 `.gitkeep` 仅用于保留空目录,不是迁移文件。
完整操作请先读 [数据库迁移操作手册](数据库迁移操作手册.md)。离线入口为 `scripts/db-migrations.mjs`:
```powershell
# 自动取得该 schema 的下一个整数序号并创建草稿;不连接数据库
node deploy/sql/scripts/db-migrations.mjs new --region CN --schema baiyue_auth --description add_login_audit
# 校验范围、文件名、跨 schema 引用及受保护文件;不连接数据库
node deploy/sql/scripts/db-migrations.mjs check
# 由选中服务自动生成逐库目标和 SQL 哈希;不手填发布 JSON
node deploy/sql/scripts/db-migrations.mjs plan --services auth,iam --regions CN --out release-manifest.json
# 当前只提供安全的只读计划;实际 Flyway 执行需后续阶段显式配置并授权
node deploy/sql/scripts/db-migrations.mjs run --manifest release-manifest.json --dry-run
```
`new` 使用独占创建避免并发覆盖;成功历史或已冻结制品不能由普通命令改写。`plan` 只打包选中服务及评审确认的 schema,不会因为同一提交存在其他区域或服务 SQL 就自动扩大范围。`run` 的真实执行还未接入测试数据库和 Jenkins,当前未授权任何部署或 SQL 操作。
## 本地验证
离线合同不连接数据库: