我正在寻求关于软件系统中与其他代码更改一起发布的数据库脚本修改的最佳实践见解。
我曾经在一家公司工作,他们坚持每次发布都有一个回滚,以防出现问题。这听起来很明智,但在我看来,通过脚本部署的数据库修改的回滚代码和发布脚本具有同样的失败可能性。
对于托管的代码,版本控制使这变得非常简单,但对于数据库架构,回滚更改并不容易 - 特别是如果数据作为发布的一部分进行了更改。
我的当前做法是在后期开发阶段针对测试数据库运行发布代码,然后针对该测试数据库运行应用程序。之后,我备份现场数据库,并继续进行发布。
我还没有遇到问题,但想知道其他商店如何管理数据库更改以及从任何错误中恢复的策略是什么。