簡體   English   中英

Liquibase 繼續執行錯誤

[英]Liquibase Continue on Error Implementation

我的要求如下

  1. 當我使用Liquibase運行demo.sql文件時。 它由 10 個 sql 語句組成。
  2. 在第 5 條語句如果遇到錯誤,它應該完全回滾所有更改。

  3. 我的要求是繼續它直到完成腳本並嘗試提交其余有效的語句。

有什么解決辦法嗎?

您應該為您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM