回滚和更新取决于changeLog文件条目

时间:2015-10-30 14:18:36

标签: git jenkins liquibase

目前我有一个拥有多个节点的jenkins服务器。在每个节点中,我都有一个运行的数据库来支持该特定节点中的测试。 我还在所有节点中构建了不同的功能分支。

这个环境有一个警告,就是数据库。不同的分支可以有不同版本的数据库,不幸的是我无法删除并为每个构建创建完整的数据库。所以我需要使用liquibase的更新和回滚。

目前我在maven编译周期内有liquibase,所以它会自动运行。但我需要能够根据当前文件更新和回滚更改。

当前行为只允许我在新的变更集出现时进行更新。

示例:

  

分支主机具有变更集B,C,D

     

分支F1具有变更集B,C,D,E

     

分支F2具有变更集B,C,D

     

我为F1运行任务,变更集E被添加到数据库中。后   如果我运行分支F2我需要它回滚到更改集D,但更新做   不允许我这样做。

由于

1 个答案:

答案 0 :(得分:0)

我们为此类测试做的一件事是使用Liquibase的dropAll功能。它比完全删除和重新创建数据库更快,但实现了许多相同的目标 - 拥有一个干净的空数据库,然后您可以使用Liquibase更新来创建模式,然后对其进行测试。

有一个maven插件任务可以执行此操作。 http://www.liquibase.org/documentation/maven/maven_dropall.html