使用GitFlow开发模型管理Liquibase

时间:2017-06-05 21:54:08

标签: mysql git liquibase

我们正在使用git flow模型进行开发,并尝试集成liquibase来有效地管理数据库版本控制。问题出现在开发人员正在开发一个功能分支并且创建了一个在他的数据库和另一个开发人员的数据库上执行的DB脚本时,但它还没有任何版本的一部分,所以它还没有被标记。现在该功能已经过测试并成为发布的一部分,我们会标记变更集并在生产中执行它。

问题是如何回滚在开发人员的计算机上所做的更改,因为在脚本执行时没有定义标记,当我们尝试更新它时,当前标记会显示错误“表已经存在”

如何通过liquibase有效管理这些条件?

1 个答案:

答案 0 :(得分:0)

我们所做的不是与Git或GitFlow相关联,而是与数据库本身相关联:

每次执行db脚本时,都会通过包装器完成,该包装器还会将所述脚本执行记录在数据库的专用表中。 这样,下次应用相同的脚本时,包装器将检测到它已经被执行,并且不会再次应用它。

这是product like Flyway已经完成的内容的实现(如此回答you can use both: Liquidbase and Flyway所示,seem to differ)。 重点是:仅使用版本控制系统无法管理:您需要一个额外的工具来强制/控制数据库升级过程。