[java] Liquibase 변경 세트(ChangeSet) 개념과 사용법

목차

개요

Liquibase는 데이터베이스 스키마의 버전 관리를 도와주는 도구입니다. 변경 세트(ChangeSet)는 Liquibase에서 사용되는 단위로, 데이터베이스 스키마의 변경 내역을 정의하고 실행할 수 있습니다. 변경 세트를 사용하여 데이터베이스의 구조적 변화를 추적하고 관리할 수 있습니다. 이번 글에서는 Liquibase 변경 세트의 개념과 사용법에 대해 알아보겠습니다.

변경 세트란 무엇인가?

변경 세트(ChangeSet)는 Liquibase에서 단일 데이터베이스 스키마 변경을 나타내는 단위입니다. 각 변경 세트는 고유한 식별자와 변경 내역을 포함하고 있습니다. 이러한 변경 내역은 데이터베이스 스키마의 테이블, 컬럼, 제약 조건 등과 관련된 작업을 포함할 수 있습니다. 변경 세트는 순차적으로 실행되며, 항상 정의된 순서대로 실행되어 예상되는 데이터베이스 상태를 유지합니다.

Liquibase에서의 변경 세트 작성

Liquibase에서 변경 세트를 작성하기 위해서는 XML 또는 YAML 형식을 사용할 수 있습니다. 변경 세트는 다음과 같이 작성됩니다:

<changeSet id="uniqueIdentifier" author="authorName">
    <createTable tableName="exampleTable">
        <column name="id" type="INT"/>
        <column name="name" type="VARCHAR(100)"/>
    </createTable>
</changeSet>

위 예시에서는 createTable 명령어를 사용하여 exampleTable이라는 테이블을 생성하는 변경 세트를 작성하였습니다. idauthor는 변경 세트를 고유하게 식별하기 위한 필수 속성입니다. 각 변경 세트는 대개 스키마 변경 하나와 관련된 작업을 포함합니다.

변경 세트 실행

Liquibase를 실행하여 변경 세트를 데이터베이스에 적용할 수 있습니다. 변경 세트를 실행하기 전에, 다음과 같은 설정 파일을 작성해야 합니다:

<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="uniqueIdentifier" author="authorName">
        // 변경 세트를 포함한 다른 변경 내역을 작성합니다.
    </changeSet>
</databaseChangeLog>

변경 세트를 실행하려면 Liquibase 명령어를 실행합니다. 예를 들어, 다음과 같은 명령어를 사용하여 변경 세트를 실행할 수 있습니다:

liquibase --changeLogFile=db.changelog.xml update

위 명령어에서 --changeLogFile은 설정 파일의 경로를 지정하고, update는 변경 세트를 실행하는 명령입니다.

결론

Liquibase 변경 세트는 데이터베이스 스키마의 변경을 추적하고 관리하는 중요한 개념입니다. 변경 세트를 사용하면 명확한 데이터베이스 상태를 유지하고 변경 내역을 추적할 수 있습니다. 이 글을 통해 Liquibase 변경 세트의 개념과 사용법을 이해하고, 실제 프로젝트에 적용해보시기 바랍니다.