如何知道 Liquibase 变更集是否足够安全,可以在数据库上运行



我正在尝试开发一个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 文档以了解先决条件。

最新更新