[java] Liquibase를 사용하여 자바 애플리케이션의 데이터베이스 스키마 마이그레이션 시점 관리하기

소개

데이터베이스 스키마 관리는 애플리케이션의 수명주기 동안 매우 중요한 역할을 합니다. 새로운 기능을 추가하거나 수정할 때마다 스키마를 업데이트해야 합니다. 이를 위해 하나의 표준 도구인 Liquibase를 사용하면 스키마 마이그레이션을 쉽게 관리할 수 있습니다. Liquibase는 자바 기반의 오픈 소스 프로젝트로, Java, .NET, Python 등 다양한 언어로 작성된 애플리케이션에 적용할 수 있습니다.

Liquibase 설정하기

Liquibase를 사용하기 위해서는 다음과 같은 단계를 거쳐야 합니다.

  1. pom.xml 파일에 Liquibase 의존성 추가하기
    <dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-core</artifactId>
        <version>4.5.0</version>
    </dependency>
    
  2. liquibase.properties 파일 생성하기
    driver: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mydatabase
    username: myusername
    password: mypassword
    
  3. changeLog.xml 파일 생성하기
    <?xml version="1.0" encoding="UTF-8"?>
    <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-4.5.xsd">
    
        <!-- Add your change sets here -->
    
    </databaseChangeLog>
    

스키마 마이그레이션 수행하기

Liquibase를 사용하여 스키마 마이그레이션을 수행하려면 다음 명령을 실행해야 합니다.

liquibase update

위 명령을 실행하면 liquibase.properties 파일에 지정된 데이터베이스에 대한 마이그레이션을 수행합니다. 변경 내용은 changeLog.xml 파일에 추가된 change set에 따라 적용됩니다.

롤백하기

Liquibase를 사용하면 롤백도 간단하게 수행할 수 있습니다. 롤백은 이전 버전의 스키마로 돌아가는 것을 의미합니다.

liquibase rollback

위 명령을 실행하면 가장 최근에 수행된 마이그레이션을 롤백합니다. 롤백 명령어에는 추가적인 옵션을 사용하여 롤백할 변경 세트를 지정할 수도 있습니다.

결론

Liquibase는 자바 애플리케이션의 데이터베이스 스키마 마이그레이션을 쉽게 관리할 수 있는 강력한 도구입니다. 설정을 간단하게 구성하고 변경 내용을 적용하거나 롤백하는 것도 매우 간단합니다. Liquibase를 사용하여 애플리케이션의 데이터베이스 스키마 관리를 효율적으로 수행할 수 있습니다.

참고 자료