我的要求如下
demo.sql
运行Liquibase
文件时。它由10个sql语句组成。如果第5个语句遇到错误,它应该完全回滚所有更改。
我的要求是继续它直到完成脚本并尝试提交有效的其余语句。
任何解决方案 是什么?
答案 0 :(得分:0)
您应该将preConditions
和rollback
添加到liquibase脚本中。
来自https://www.liquibase.org/documentation/changes/sql_file.html
<changeSet author="liquibase-docs" id="sqlFile-example">
<preConditions onFail="MARK_RAN">
<!-- your preconditions here -->
</preConditions>
<sqlFile dbms="h2, oracle"
encoding="utf8"
endDelimiter="\nGO"
path="my/path/file.sql"
relativeToChangelogFile="true"
splitStatements="true"
stripComments="true"/>
<rollback>
<!-- your rollback here -->
</rollback>
</changeSet>
如果您想在demo.sql
中的第5个语句上回滚具体,那么您可以将demo.sql
拆分为两个文件并在单独的{{1}中执行}:第一个包括语句1-5,第二个包括语句6-10。