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