忽略 Liquibase 前提条件

Liquibase precondition is ignored

我只想在开发数据库中添加一些数据用于测试目的。 为此,我使用

创建了一个 test_data.sql
<include file="./test_data.sql" relativeToChangelogFile="true"/>

test_data.sql格式如下:

--liquibase formatted sql

--changeset whiad-16453:testdata runOnChange:true failOnError:true endDelimiter:go stripComments:false
--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:1 select case when db_name()='devdb' then 1 else 0 end
insert into...

我预计只有当 select returns 1(它是 Sybase SQL 方言并且我在 Dev 和 Prod 环境中执行查询时才执行插入使用 Sybase Central 并按预期 return 0 或 1)。 尽管如此,Liquibase 创建了一个包含插入的脚本(使用 updateSQL 命令行参数)。

我或者尝试在更新日志中的包含文件之前使用先决条件:

<preConditions>
    <sqlCheck expectedResult="1">select case when db_name()='devdb' then 1 else 0 end</sqlCheck>
</preConditions>
<include file="./test_data.sql" relativeToChangelogFile="true"/>

但在这种情况下,插入的位置也是如此。 我还尝试使用我在条件中使用的 属性:

<changeLogPropertyDefined property="deploy_test_data" value="true"/>

但这也没有任何效果。

我做错了什么?

我现在将上下文用于我的目的,将 "contexts==!testdata" 作为参数传递给产品。