Liquibase继续执行错误

时间:2018-05-24 06:07:09

标签: java database liquibase liquibase-hibernate

我的要求如下

  1. 当我使用demo.sql运行Liquibase文件时。它由10个sql语句组成。
  2. 如果第5个语句遇到错误,它应该完全回滚所有更改。

  3. 我的要求是继续它直到完成脚本并尝试提交有效的其余语句。

  4. 任何解决方案         是什么?

1 个答案:

答案 0 :(得分:0)

您应该将preConditionsrollback添加到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。