Liquibase changeSet内部更改的执行顺序

时间:2018-06-28 05:06:07

标签: liquibase

我们正在使用liquibase将一列分为两列。这发生了三个变化:

  1. 通过 addColumn
  2. 添加新列
  3. 通过 customChange
  4. 将旧列中的数据插入新列中
  5. 通过 dropColumn
  6. 删除旧列

这很好用,但是我找不到按更改执行的任何文档。 我只找到有关 changeSets 的执行顺序的文档,请参见here

liquibase是否保证更改按显示顺序顺序执行?

1 个答案:

答案 0 :(得分:2)

我从未见过有关它的任何文档,但是以我的经验-它确实按更改顺序在changeSet内部执行更改。

此外,我不认为将以上所有更改都放入一个changeSet中是一种好习惯,因为,正如您提供的文档中所述:

  

Liquibase尝试执行最后提交的事务中的每个changeSet,如果有错误,则回滚。一些数据库将自动提交语句,这会干扰此事务的设置并可能导致意外的数据库状态。因此,通常最好是每个changeSet仅具有一个更改,除非您希望将一组非自动提交的更改作为事务(例如插入数据)应用。

我建议将您的changeSet分为三个具有适当preConditions的原子原子,或为此创建一个适当的rollback