![](/img/trans.png)
[英]Value 'CONTINUE' is not facet-valid error on running liquibase
[英]Liquibase Continue on Error Implementation
我的要求如下
Liquibase
運行demo.sql
文件時。 它由 10 個 sql 語句組成。在第 5 條語句如果遇到錯誤,它應該完全回滾所有更改。
我的要求是繼續它直到完成腳本並嘗試提交其余有效的語句。
有什么解決辦法嗎?
您應該為您的preConditions
腳本添加前置條件和rollback
。
來自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
拆分為兩個文件並在單獨的changeSets
中執行它們:第一個將包含語句 1-5,第二個將包含語句 6 -10。
您還可以將其分成 10 個變更集,例如
<changeSet author="liquibase-docs" id="sql-example" failOnError="false">
<sql>SELECT * from one_table;</sql>
</changeSet>
<changeSet author="liquibase-docs" id="sql-example2" failOnError="false">
<sql>SELECT * from another_table;</sql>
</changeSet>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.