【问题标题】:Liquibase preconditions to all changelog file in sqlLiquibase 对 sql 中所有更改日志文件的先决条件
【发布时间】:2020-01-16 17:26:39
【问题描述】:

我想对我的 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 设置先决条件?

提前致谢!

【问题讨论】:

标签: liquibase liquibase-sql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-12
      • 2015-01-27
      • 2015-08-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      相关资源
      最近更新 更多