我正在尝试开发一个Web应用程序,该应用程序根据用户选择的应用程序版本升级用户的数据库。我正在使用 liquibase api 来执行此操作。每个版本都有一组 liquibase 变更集文件。我想确保要在用户的数据库上运行的变更集是安全的。有没有办法在不影响数据库的情况下针对用户的数据库验证变更集,然后更新 liquibase 文件?我的变更集没有"回滚"标记。
您可以使用preConditions
。 除了内置的前提条件(其中有很多(之外,还有一个sqlCheck
,它允许您检查您想要的任何条件。您可以在前提条件中检查可能sqlCheck
错误和不一致。
<changeSet id="changesetId" author="changesetAuthor">
<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="">
<!-- your SQL here -->
</sqlCheck>
</preConditions>
<!-- the rest of the changeSet -->
查看 liquibase 文档以了解先决条件。