在连续递送生产数据迁移模式(production data migration patterns i

2019-07-30 13:15发布

什么是连续传递关系数据库(和模式)的迁移模式生产?

在许多传统的发展的DBA安排一个大迁移脚本出在当前的发布周期创造了许多小脚本。 但在光盘中的开发者可能想立即将更改推到生产,迫不及待与其他脚本编译它们。

我知道,在轨道上迁移但对我来说,它看起来更合理地使用原始的SQL脚本。

我也看到了类似的工具迁徙路线来管理迁移,但我没有看到很多人在生产中使用它们。 这就是为什么我不知道什么是常见的做法在这里。

Answer 1:

迁飞连续交付/部署的伟大工程。 许多客户使用它在各种环境,包括生产。

跨环境级联DB迁移的一个最重要的事情是有一个3个步骤:

步骤1

旧的应用程序代码与旧的数据库一起工作。

第2步

新的应用程序代码被部署和迁移DB上启动。 这种迁移必须是向后兼容,使旧的应用程序代码仍可使用新的DB工作。 这是因为必要的:

  • 那么你可以做滚动升级,在升级时一个节点,直到所有节点都具有新的应用程序代码
  • 如果新的一个坏立即回滚到旧的应用程序代码

此步骤可包括兼容性视图和触发器来完成这项工作。

第3步

更改已证明的工作之后,应用程序代码的下一个版本获取必要的DB迁移部署在一起,丢弃任何剩余的过时的(步骤1)和兼容性(步骤2)结构。



Answer 2:

实施变更到你的数据库单(原料)的SQL文件,然后使用sqlpatch建立一个迁移脚本。

我通常有单独的数据库,并附加了CD环境中的单个git仓库。 我通常有一个生产,当我推到相应的分支被自动迁移一个开发数据库。

这种设置使得很容易安装另一个数据库的特性分支,并用它进行试验。 Sqlpatch负责在单独的SQL文件中的所有依存关系,这样我可以很容易地在另一个分支合并一个特性分支。



文章来源: production data migration patterns in continuous delivery