2026-10-22发布

一次回滚失败之后,我把发布流程重写了

那天的顺序是:发布,报错,回滚,回滚也失败。原因是这次发布包含一个数据库迁移,而回滚脚本只回滚了代码,没有回滚 schema。

教训不是「迁移要小心」,而是「回滚路径必须和发布路径一起设计」。凡是发布时会改的东西,回滚时都得有对应的逆向操作,包括数据。

重写后的流程有三条硬规则:迁移必须向前兼容(旧代码能读新 schema)、每一步都可单独回退、回滚脚本必须在预发环境跑过至少一次。

第三条听起来多余,但它是唯一能证明回滚可用的方式。写在文档里没被执行的脚本,等于不存在。

← 回到时间线