迁移工具教程极多。当现场库可能被人手改过、不能自动删列/删表 时,「仓库 CREATE = 期望终态,脚本只 ADD/MODIFY,DROP 只出报告」这一整套策略,公开写透的并不多。
策略表
| 动作 | 策略 |
|---|---|
| 无表 | 按仓库「若不存在则建表」的最新形态创建 |
| 缺列 / 类型不一致 | 显式 Apply 时增加或修改 |
| 多出来的列/表 | 只写报告,不自动删除 |
| 生产 Apply | 需显式允许 |
其它纪律:增量变更与建表目录分家;假数据与结构脚本分家;按模块登记同步范围;报告落到本机运行时目录。
为什么「删只报告」
需求口头常说「多则删」。落到气隙/离线机上,库往往被临时改过——报错后找不到是哪张表的哪个状态字段,是典型漂移排障。自动 DROP 会把「现场救命列」一并删掉。
「仓库终态」与「禁止瞎删」可以同时成立:diff 先报告,再人工确认。
可复用的落点
- 仓库终态 ≠ 盲目对齐删除。
- 人手改过的离线库会让「正向迁移」假设破产。
- 先 diff 报告,再 Apply。