구체적인 예인 Liquibase와 함께 일하는 방법
-
18-09-2019 - |
문제
빠른 스타트를 따릅니다 Liquibase 나는 changes 셋을 만들었습니다 (매우 멍청한 :))
암호:
<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.6"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.6
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.6.xsd">
<changeSet id="1" author="me">
<createTable tableName="first_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
<column name="name" type="varchar(50)">
<constraints nullable="false"/>
</column>
</createTable>
<createTable tableName="new_table">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
</createTable>
</changeSet>
</databaseChangeLog>
깨끗한 스키마를 만들었고 Migrate 명령을 시작했습니다.
Liquibase는 지원 테이블 DatabaSechangelog 및 ..Lock을 사용하여 데이터베이스를 만들었습니다.
이제 어떻게 변경 사항을 추적 할 수 있습니까 ?? 새로운 CreateTable 요소를 추가하는 Changes 세트를 수정했지만 "업데이트"명령을 시도 할 때 Liquibase가 말해줍니다.
Migration Failed: Validation Failed:
1 change sets check sum
그래서 나는 Liquibase와 함께 일하는 방법을 이해하지 못했다고 생각합니다.
누군가 나를 올바른 방향으로 가리킬 수 있습니까?
감사
다른 팁
이 현재 인정 된 답변은 Liquibase 2.X의 변화를 기반으로 약간 오래된 것입니다. 2.X 버전에서는 MD5 체크섬이 변경 사항에 대해 변경된 경우 Liquibase가 여전히 실패하지만 runonchange 속성 수정할 수 있으려면 속성.
로부터 선적 서류 비치:
runonchange - 처음 보았을 때 변경을 실행하고 변경 세트가 변경 될 때마다 실행됩니다.
기본적으로 이미 수행 된 변경 사항이 변경되면 해당 변경 사항에 대한 MD5가 새 제품과 일치하도록 데이터베이스를 수동으로 수정할 수 있습니다. 사소한 텍스트 변경에 좋습니다. 또는 테이블에서 변경 설정 행을 삭제할 수 있습니다.
제휴하지 않습니다 StackOverflow