Liquibase重复changeSet没有按预期失败

时间:2015-03-30 18:10:38

标签: oracle duplicates liquibase changeset

所以我有一个Oracle数据库,我在liquibase中更新...在测试我的数据库构建系统的过程中,我创建了一个新的更改,其内容与具有不同ID的旧更改相同。两者都使用SQL添加具有相同名称的列。我希望第二个失败,因为它会尝试创建一个已存在的列,但liquibase命令updateTestingRollback报告:

Liquibase 'updateTestingRollback' Successful

任何想法可能是什么原因?

<changeSet id="2" author="anonymous" failOnError="true">
  <sql>ALTER TABLE person ADD (col_a VARCHAR(1));</sql>
  <rollback>ALTER TABLE person DROP COLUMN col_a;</rollback>
</changeSet>
<changeSet id="3" author="anonymous" failOnError="true">
  <sql>ALTER TABLE person ADD (col_a VARCHAR(1));</sql>
  <rollback>ALTER TABLE person DROP COLUMN col_a;</rollback>
</changeSet>

1 个答案:

答案 0 :(得分:0)

您可以尝试添加--logLevel=debug标志来运行以确保,但我的猜测是,当应用第二个更改的sql时,oracle没有返回错误代码。如果您使用<sql>标记而不是更具体的更改类型标记(即<addColumn>标记),则liquibase更难以检测到问题。