[java] Liquibase 스크립트 작성 방법

Liquibase는 데이터베이스 스키마 관리 도구로, 스키마 변경을 추적하고, 버전 관리를 할 수 있으며, 다양한 데이터베이스 시스템에서 이용됩니다. 이번 포스트에서는 Liquibase 스크립트를 작성 및 실행하는 방법에 대해서 알아보겠습니다.

1. Liquibase 설치 및 설정

먼저, Liquibase를 설치하고 환경을 설정해야 합니다. Liquibase는 공식 사이트에서 다운로드 받을 수 있습니다. 압축을 해제한 후, liquibase 실행 파일을 설정한 환경 변수에 추가해야 합니다.

또한, 데이터베이스 연결 정보를 설정하는 liquibase.properties 파일을 생성해야 합니다. 이 파일은 Liquibase가 데이터베이스에 접속할 때 사용하는 정보를 담고 있으며, 아래와 같은 형식으로 작성할 수 있습니다:

driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/mydatabase
username: myuser
password: mypassword

2. Liquibase 스크립트 작성

Liquibase 스크립트는 변경 내역을 정의하는 XML 또는 YAML 형식으로 작성됩니다. 스크립트 파일은 버전 관리 시스템을 이용하여 관리하는 것이 좋습니다.

스크립트 예시 (XML):

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                   http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
                   
    <changeSet id="1" author="john.doe">
        <createTable tableName="users">
            <column name="id" type="INT">
                <constraints primaryKey="true" nullable="false"/>
            </column>
            <column name="username" type="VARCHAR(50)">
                <constraints nullable="false"/>
            </column>
            <column name="password" type="VARCHAR(50)">
                <constraints nullable="false"/>
            </column>
        </createTable>
    </changeSet>
    
    <changeSet id="2" author="john.doe">
        <addUniqueConstraint tableName="users" columnNames="username"/>
    </changeSet>
    
</databaseChangeLog>

스크립트 예시 (YAML):

databaseChangeLog:
  - changeSet:
      id: 1
      author: john.doe
      changes:
        - createTable:
            tableName: users
            columns:
              - column:
                  name: id
                  type: INT
                  constraints:
                    primaryKey: true
                    nullable: false
              - column:
                  name: username
                  type: VARCHAR(50)
                  constraints:
                    nullable: false
              - column:
                  name: password
                  type: VARCHAR(50)
                  constraints:
                    nullable: false
  - changeSet:
      id: 2
      author: john.doe
      changes:
        - addUniqueConstraint:
            tableName: users
            columnNames: username

3. Liquibase 스크립트 실행

Liquibase 스크립트를 실행하기 위해 다음 명령을 사용할 수 있습니다:

liquibase update

위 명령은 liquibase.properties 파일에 지정된 데이터베이스로 접속하고, 스크립트에 정의된 변경 내역을 적용합니다.

추가적인 Liquibase 명령에 대해서는 공식 문서를 참고하세요.

마무리

이번 포스트에서는 Liquibase 스크립트 작성 방법에 대해서 알아보았습니다. Liquibase를 이용하면 데이터베이스 스키마 관리를 효율적으로 할 수 있으며, 변경 내역 추적 및 롤백 기능을 활용할 수 있습니다. Liquibase의 더 자세한 사용 방법과 기능에 대해서는 공식 문서를 참고해 주세요.