java - Liquibase 继续执行错误
问题描述
我的要求如下
- 当我
demo.sql
使用Liquibase
. 它由 10 个 sql 语句组成。 在第 5 条语句如果遇到错误,它应该完全回滚所有更改。
我的要求是继续它直到完成脚本并尝试提交其余有效的语句。
有什么解决办法吗?
解决方案
您应该向您添加preConditions
liquibase 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>
如果您想在第 5 条语句中特别demo.sql
回滚,那么也许您可以将您的文件拆分demo.sql
为两个文件并分别执行changeSets
:第一个将包含语句 1-5,第二个将包含语句 6-10。
推荐阅读
- heroku - 当我使用自定义域时,Heroku 错误:这里什么都没有
- firebase - 在 00:00 重置 Firebase 数据库
- javascript - JavaScript 中是否存在竞争条件?
- api - REST API 设计 - 在请求中传递多行 - 保存按钮
- python - 在 Python 中将 MP3 音频文件转换为 Numpy 数组
- python - How to search under condition that field may or may not exist in Elasticsearch
- angular - http错误的响应主体内的对象
- amazon-ec2 - 在ansible中加载基于区域的基于环境的动态vars文件
- azure - 适用于 Mac 的带有 Azure AD 身份验证的 Azure P2S VPN
- r - Printing certain elements of a character vector based on condition and deleting the others