0

我想对我的 SQL changeLogFile 中的每个 changeSet 运行 SQL 前置条件检查。它实际上是changeLog本身的前提条件

这是它的摘录:

--liquibase formatted sql

--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:"1.0" SELECT VERSION FROM VERSION_TABLE;

--changeset bob:1 failOnError:true dbms:oracle
ALTER INDEX XXX RENAME TO YYY;
--rollback YYY RENAME TO XXX;

即使实际上不遵守前提条件,liquibase 仍会运行所有变更集。

有人知道这是否是我这边的错误,还是 liquibase 不允许对 SQL changeLog 文件的整个 changeLog 设置先决条件?

提前致谢 !

4

2 回答 2

0

如果您仔细阅读文档,则说明我们只能在特定更改集上应用先决条件。此外,仅支持 SQL Check 前提条件。

用于 sql 更改日志文件的 Liquibase 文档 - https://www.liquibase.org/documentation/sql_format.html

于 2020-02-25T06:17:44.383 回答
0

您可以做的一件事是拥有一个 XML/YAML/JSON 格式的顶级主变更日志,然后使用<include>or<includeAll>元素来包含您的 liquibase 格式的 sql 变更日志。如果你这样做,那么你可以有更改日志级别的先决条件。

于 2020-02-27T16:32:06.630 回答