忽略 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" 作为参数传递给产品。
我只想在开发数据库中添加一些数据用于测试目的。 为此,我使用
创建了一个 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" 作为参数传递给产品。