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"/>
을하지만이 또한 어떤 영향을 미치지 않았다.
내가 뭘 잘못 했니?
어떤 버전의 liquibase를 사용하고 있습니까? – Jens
Liquibase 3.5.1 –
expectedResult를 1에서 0으로 변경하면 어떨까요? – Jens