Liquibase продолжить реализацию ошибок - PullRequest
0 голосов
/ 24 мая 2018

Мое требование следующее:

  1. Когда я запускаю demo.sql файл, используя Liquibase.Он состоит из 10 операторов SQL.
  2. При 5-м операторе, если он обнаружит ошибку, он должен полностью откатить все изменения.

  3. Мое требованиепродолжить его до завершения сценария и попытаться зафиксировать остальные операторы, которые действительны.

Есть ли какое-либо решение по этому поводу?

1 Ответ

0 голосов
/ 24 мая 2018

Вы должны добавить 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>

Если вы хотите выполнить откат конкретно Что касается 5-го оператора в demo.sql, то, возможно, вы можете разбить ваш demo.sql на два файла и выполнить их в отдельных changeSets: первый будет содержать операторы 1-5, а второй будет содержать операторы 6-10.

...