什么是连续传递关系数据库(和模式)的迁移模式生产?
在许多传统的发展的DBA安排一个大迁移脚本出在当前的发布周期创造了许多小脚本。 但在光盘中的开发者可能想立即将更改推到生产,迫不及待与其他脚本编译它们。
我知道,在轨道上迁移但对我来说,它看起来更合理地使用原始的SQL脚本。
我也看到了类似的工具迁徙路线来管理迁移,但我没有看到很多人在生产中使用它们。 这就是为什么我不知道什么是常见的做法在这里。
什么是连续传递关系数据库(和模式)的迁移模式生产?
在许多传统的发展的DBA安排一个大迁移脚本出在当前的发布周期创造了许多小脚本。 但在光盘中的开发者可能想立即将更改推到生产,迫不及待与其他脚本编译它们。
我知道,在轨道上迁移但对我来说,它看起来更合理地使用原始的SQL脚本。
我也看到了类似的工具迁徙路线来管理迁移,但我没有看到很多人在生产中使用它们。 这就是为什么我不知道什么是常见的做法在这里。
迁飞连续交付/部署的伟大工程。 许多客户使用它在各种环境,包括生产。
跨环境级联DB迁移的一个最重要的事情是有一个3个步骤:
步骤1
旧的应用程序代码与旧的数据库一起工作。
第2步
新的应用程序代码被部署和迁移DB上启动。 这种迁移必须是向后兼容,使旧的应用程序代码仍可使用新的DB工作。 这是因为必要的:
此步骤可包括兼容性视图和触发器来完成这项工作。
第3步
更改已证明的工作之后,应用程序代码的下一个版本获取必要的DB迁移部署在一起,丢弃任何剩余的过时的(步骤1)和兼容性(步骤2)结构。
实施变更到你的数据库单(原料)的SQL文件,然后使用sqlpatch建立一个迁移脚本。
我通常有单独的数据库,并附加了CD环境中的单个git仓库。 我通常有一个生产,当我推到相应的分支被自动迁移一个开发数据库。
这种设置使得很容易安装另一个数据库的特性分支,并用它进行试验。 Sqlpatch负责在单独的SQL文件中的所有依存关系,这样我可以很容易地在另一个分支合并一个特性分支。