2016-06-01 4 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는 insertSQL을 포함하는 스크립트를 생성했습니다 (updateSQL 명령 줄 인수 사용). perfomed

<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"/> 

을하지만이 또한 어떤 영향을 미치지 않았다.

내가 뭘 잘못 했니?

+0

어떤 버전의 liquibase를 사용하고 있습니까? – Jens

+0

Liquibase 3.5.1 –

+0

expectedResult를 1에서 0으로 변경하면 어떨까요? – Jens

답변

0

나는 이제 "contexts ==! testdata"를 prod의 매개 변수로 전달하는 목적으로 컨텍스트를 사용했습니다.

관련 문제