[java] Flyway를 사용하여 Java 애플리케이션에서 데이터베이스 스키마 버전 관리하기

소개

Flyway는 데이터베이스 스키마 관리를 위한 오픈 소스 도구입니다. Java 애플리케이션에서 쉽게 사용할 수 있으며, 데이터베이스의 스키마 변경을 관리하고 버전을 트래킹할 수 있습니다.

설정하기

Flyway를 사용하기 위해서는 몇 가지 설정이 필요합니다.

  1. Maven 또는 Gradle에 Flyway를 종속성으로 추가합니다.
  2. 데이터베이스 연결 정보를 설정합니다.
  3. 마이그레이션 스크립트를 작성합니다.

데이터베이스 연결 정보 설정하기

Flyway를 사용하기 위해선 데이터베이스에 연결할 정보가 필요합니다. flyway.url, flyway.user, flyway.password와 같은 프로퍼티를 설정하여 데이터베이스 연결 정보를 지정할 수 있습니다.

flyway.url=jdbc:mysql://localhost:3306/mydb
flyway.user=root
flyway.password=secret

마이그레이션 스크립트 작성하기

Flyway는 버전별로 데이터베이스 스키마를 변경하기 위한 마이그레이션 스크립트를 제공합니다. 마이그레이션 스크립트는 V1__initial.sql과 같은 형식으로 작성되며, 접두사로 버전 숫자와 언더스코어를 사용합니다.

예를 들어, 초기 스키마를 생성하는 스크립트를 작성하려면 다음과 같이 작성할 수 있습니다.

-- V1__initial.sql

CREATE TABLE users (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL
);

사용하기

Flyway는 애플리케이션 구동 시점에 자동으로 데이터베이스를 마이그레이션합니다. 아래의 코드를 통해 Flyway를 시작할 수 있습니다.

import org.flywaydb.core.Flyway;

public class Main {
    public static void main(String[] args) {
        Flyway flyway = Flyway.configure()
                .dataSource("jdbc:mysql://localhost:3306/mydb", "root", "secret")
                .schemas("mydb")
                .locations("classpath:db/migration")
                .load();

        flyway.migrate();
    }
}

위의 코드에서 locations 메서드의 인자로 마이그레이션 스크립트의 경로를 설정합니다. 자세한 설정은 Flyway 문서를 참고하세요.

결론

Flyway를 사용하면 Java 애플리케이션에서 데이터베이스 스키마 버전 관리를 간편하게 할 수 있습니다. Flyway를 사용하여 마이그레이션 스크립트를 작성하고 애플리케이션을 실행해보세요. Flyway는 스키마 버전 관리를 효율적으로 도와줄 것입니다.

참고 자료