2016-06-01 68 views
0

我想在開發數據庫中添加一些數據用於測試目的。 要做到這一點,我創建了一個test_data.sql使用忽略Liquibase的前提條件

<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返回1(這是一個Sybase SQL方言,我使用Sybase Central在Dev和Prod環境中執行查詢,並且按預期返回0或1)。 儘管如此,Liquibase創建了一個包含插入的腳本(使用updateSQL命令行參數)。

我或者試圖使用權的前提條件之前,包括在changelog文件:

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

而且在這種情況下perfomed插入。 我還試圖用我的條件中使用的屬性:

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

但這也並沒有任何效果。

我該怎麼做?

+0

您使用的是什麼版本的liquibase? – Jens

+0

Liquibase 3.5.1 –

+0

如果您只是將expectedResult從1更改爲0,該怎麼辦? – Jens

回答

0

我現在使用上下文來傳遞「contexts ==!testdata」作爲prod上的參數。