사용자 도구

사이트 도구


java:database:migration:liquibase

문서의 이전 판입니다!


Liquibase

기본

  • DATABASECHANGELOG 라는 테이블로 changeset 트래킹

Gradle

plugins {
  id 'org.liquibase.gradle' version '2.0.3'
}
 
// JDBC 드라이버 등 관련 의존성을 일일이 따로 걸어주거나 아래처럼 runtime에서 그대로 가져온다.
configurations {
  liquibaseRuntime.extendsFrom runtime
}
 
// java 9 이상 버전 사용시에 jaxb 명시적 설정 필요.
liquibaseRuntime group: 'javax.xml.bind', name: 'jaxb-api', version: '2.3.1'
 
// 혹시 logback 을 안사용한다면 추가 필요.
liquibaseRuntime("ch.qos.logback:logback-core:1.2.3")
liquibaseRuntime("ch.qos.logback:logback-classic:1.2.3")
 
// hibernate diff 모듈을 사용한다면,
liquibaseRuntime 'org.liquibase.ext:liquibase-hibernate5:3.6' 
liquibaseRuntime sourceSets.main.output

Change Types

sql

  • SQL 구문을 있는 그대로 넣을 수 있다.
  • 기본 delimiter가 ; 인데, 이 경우 Stored Procedure 구문등에 ;가 있으면 구문을 나눠서 실행해서 문법 오류가 발생한다.
    • endDelimiter 속성을 다른 값으로 변경하고, 해당값을 여러 구문을 구분하는 요소로 사용하도록 한다.
<changeSet  author="liquibase-docs"  id="sql-example">  
    <sql  dbms="!h2, oracle, mysql"  
            endDelimiter="\nGO"  
            splitStatements="true"  
            stripComments="true">insert into person (name) values ('Bob')
        <comment>What about Bob?</comment>  
    </sql>  
</changeSet>

참조

java/database/migration/liquibase.1594878411.txt.gz · 마지막으로 수정됨: 2020/07/16 14:46 저자 kwon37xi