@EmiliatanTenshi 快捷键直接提交回复了。 1.新增字段。这种变更先变更 db ,再升级服务,保证字段可空就不会有问题 2. 删除字段。这种变更先把在线服务对待删除字段的依赖去除,再操作 db 变更,也可以保证兼容性。 至于修改字段这种,在我经历过的几家公司都是禁止的,原因就是在线无法保证兼容性。但也不是完全无解,可以新增一个新字段,把历史数据及增量数据都写到新字段上,再把老字段下线,相当于拆解成了一个删除字段和一个新增字段的操作。不过问题就是涉及历史数据比较麻烦
“比如我们把某个字段去掉了”:先把 5 台机器都上线后,再删除字段。 “或者改了名”:假定 A 改名为 B ,先新增 B ,代码中取值时要新增找不到 B 字段则使用 A 字段兜底的逻辑,写值时要新增 A 字段存在时 AB 双写,A 不存在则仅写 B 的逻辑,待 5 台机器都上线后,删除 A 字段即可。下次升级版本再去掉 A 字段的冗余逻辑。