목차

Liquibase

기본

Gradle

plugins {
  id 'org.liquibase.gradle' version '2.0.3'
}
 
// JDBC 드라이버 등 관련 의존성을 일일이 따로 걸어주거나 아래처럼 runtime에서 그대로 가져온다.
// 공식문서에는 runtime 을 상속하라고 돼 있지만 실제로는 runtimeClasspath 여야 작동했음. Gradle 6.5.x
configurations {
  liquibaseRuntime.extendsFrom runtimeClasspath 
}
 
// 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
 
liquibase {
    activities {
        main {
            changeLogFile 'src/migration/changelog-main.xml'
            url "jdbc:url..."
            username "username"
            password "password"
        }
    }
}

ChangeLog 관리

Change Set Types

sql

<changeSet  author="liquibase-docs"  id="sql-example">  
    <sql  dbms="!h2, oracle, mysql"  
            endDelimiter="\nGO"  
            splitStatements="true"  
            stripComments="true">
        <comment>What about Bob?</comment>  
            <![CDATA[
            insert into person (name) values ('Bob')
    ]]></sql>  
</changeSet>

참조