持续交付中生产中的关系数据库(和模式)迁移模式是什么?
在许多传统开发中,DBA 从当前发布周期中创建的许多较小脚本中安排一个大型迁移脚本。但在 CD 中,开发人员可能希望立即将更改推送到生产中,而不是等待与其他脚本一起编译它们。
我知道 Rails-migration,但对我来说,使用原始 sql 脚本看起来更合理。
我还见过类似的工具flyway http://flywaydb.org/管理迁移,但我还没有读到很多人在生产中使用它们。这就是为什么我想知道这里的常见做法是什么。
Flyway 非常适合持续交付/部署。许多客户在所有环境中使用它,包括生产环境。
跨环境级联数据库迁移最重要的一点是有一个 3 步骤过程:
Step 1
旧的应用程序代码与旧的数据库一起工作。
Step 2
部署新的应用程序代码,并在启动时迁移数据库。此迁移必须向后兼容,以便旧的应用程序代码仍然适用于新的数据库。这是至关重要的,因为:
- 然后,您可以进行滚动升级,一次升级一个节点,直到所有节点都具有新的应用程序代码
- 如果新应用程序代码损坏,立即回滚到旧应用程序代码
此步骤可能涉及兼容性视图和触发器来完成这项工作。
Step 3
更改被证明有效后,应用程序代码的下一版本将获得
与必要的数据库迁移一起部署,以丢弃任何剩余的过时(来自步骤 1)和兼容性(来自步骤 2)结构。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)