[java] Flyway를 사용한 Java 애플리케이션의 데이터베이스 스키마 관리

Flyway는 Java 애플리케이션에서 데이터베이스 스키마 버전 관리를 위한 오픈 소스 라이브러리입니다. Flyway를 사용하면 애플리케이션의 데이터베이스 스키마 변경을 쉽게 관리할 수 있습니다. 이 글에서는 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 스키마를 관리하는 방법을 알아보겠습니다.

1. 의존성 추가하기

Flyway를 사용하려면 먼저 의존성을 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음과 같은 의존성을 추가합니다:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>6.0.8</version>
</dependency>

Gradle을 사용하는 경우, build.gradle 파일에 다음과 같은 의존성을 추가합니다:

implementation 'org.flywaydb:flyway-core:6.0.8'

2. 데이터베이스 설정하기

Flyway를 사용하려면 먼저 데이터베이스 연결 정보를 설정해야 합니다. Java 애플리케이션의 프로퍼티 파일에 다음과 같은 설정을 추가합니다:

# 데이터베이스 연결 정보
flyway.url=jdbc:mysql://localhost:3306/mydatabase
flyway.user=myuser
flyway.password=mypassword

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

Flyway는 마이그레이션 스크립트를 사용하여 데이터베이스의 스키마 변경을 수행합니다. 마이그레이션 스크립트는 SQL 파일로 작성되며, 파일 이름은 다음과 같은 형식을 따릅니다: V{버전 번호}__{스크립트 이름}.sql. 예를 들어, V1__create_table.sql과 같은 이름의 스크립트 파일을 작성하면 Flyway가 이를 인식하여 실행합니다.

마이그레이션 스크립트는 데이터베이스 스키마 변경에 필요한 쿼리를 포함하며, 여러 개의 스크립트를 작성하여 순차적으로 실행할 수 있습니다. 버전 번호는 마이그레이션 스크립트의 실행 순서를 결정하기 위해 사용됩니다.

4. 마이그레이션 실행하기

마이그레이션 스크립트를 작성한 후에는 Flyway를 사용하여 데이터베이스 마이그레이션을 실행할 수 있습니다. Java 애플리케이션의 엔트리 포인트에서 다음과 같은 코드를 추가하여 Flyway를 초기화하고 마이그레이션을 실행합니다:

import org.flywaydb.core.Flyway;

public class Application {
    public static void main(String[] args) {
        // Flyway 초기화
        Flyway flyway = Flyway.configure().load();

        // 마이그레이션 실행
        flyway.migrate();
    }
}

위의 코드는 Flyway를 초기화하고 migrate() 메소드를 호출하여 마이그레이션을 실행합니다.

결론

이제 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 스키마 관리를 시작할 준비가 되었습니다. 의존성을 추가하고 데이터베이스 연결 정보를 설정한 후, 마이그레이션 스크립트를 작성하고 Flyway를 사용하여 마이그레이션을 실행할 수 있습니다. Flyway를 통해 데이터베이스 스키마를 쉽게 관리할 수 있으며, 애플리케이션의 업데이트 및 유지보수를 용이하게 할 수 있습니다.

참고 자료