敏捷并行数据库迁移


Agile Parallel Database Migrations

我在一个非常灵活的环境中工作。我们通常每天都有上线。由于我们业务的性质,这种能力是必要的。我们经常对数据库进行更新。我们构建了一个自制的数据库迁移库,但是目前还没有版本的概念,并且迁移不是按顺序运行的。我们已经决定重构并按顺序运行迁移,但是我们现在发现,为了这样做,我们必须创建一个序列,并且每个迁移必须有一个唯一的版本。在多个开发人员并行工作的环境中,如何以自动化的方式实现这一点?

示例:3个分支合并到一起提升到暂存,每个分支都有一个数据库迁移要运行。我们如何确定哪一种需要最少的人工干预。

Woooo agile…我工作的环境非常它甚至更酷;)

这不是那么简单,如果一个分支暗示了对模式的修改,而这些修改在另一个分支中没有被考虑到,等等…它当然会失败。

你想要的是一个分支协调解决方案,它将处理不可能发生冲突的基本情况-

即一段代码,读取你的SQL,找到每一个ALTER TABLE,检查没有两个脚本修改相同的表,然后如果是这种情况,比较修改,看看他们是否可以合并等。

我当然可以帮你写,但是…也许有人已经开源了"sqlmigrationscriptcombinatorofdoom"。

GL;)