Skip to main content

不能随便删列的现场库:报告式结构同步

仓库 CREATE 代表期望终态;脚本只 ADD/MODIFY,DROP 只出报告——适合人手改过的气隙现场库。

迁移工具教程极多。当现场库可能被人手改过、不能自动删列/删表 时,「仓库 CREATE = 期望终态,脚本只 ADD/MODIFY,DROP 只出报告」这一整套策略,公开写透的并不多。

策略表

动作策略
无表按仓库「若不存在则建表」的最新形态创建
缺列 / 类型不一致显式 Apply 时增加或修改
多出来的列/表只写报告,不自动删除
生产 Apply需显式允许

其它纪律:增量变更与建表目录分家;假数据与结构脚本分家;按模块登记同步范围;报告落到本机运行时目录。

为什么「删只报告」

需求口头常说「多则删」。落到气隙/离线机上,库往往被临时改过——报错后找不到是哪张表的哪个状态字段,是典型漂移排障。自动 DROP 会把「现场救命列」一并删掉。

「仓库终态」与「禁止瞎删」可以同时成立:diff 先报告,再人工确认。

可复用的落点

  1. 仓库终态 ≠ 盲目对齐删除。
  2. 人手改过的离线库会让「正向迁移」假设破产。
  3. 先 diff 报告,再 Apply。