【问题标题】:Liquibase duplicate changeSet not failing as expectedLiquibase 重复变更集未按预期失败
【发布时间】:2015-03-31 05:24:12
【问题描述】:

所以我有一个 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>

【问题讨论】:

    标签: oracle duplicates liquibase changeset


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 2010-11-03
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多