[java] Flyway를 사용하여 Java 애플리케이션에서 데이터베이스 초기화하기

Flyway는 데이터베이스 마이그레이션 도구로, Java 애플리케이션에서 데이터베이스 스키마를 버전 관리하고 업데이트하는 데 사용됩니다. Flyway를 사용하면 데이터베이스의 초기화와 버전 관리를 간편하게 할 수 있습니다.

Flyway 설정하기

먼저, 프로젝트에 Flyway를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다:

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

Gradle을 사용하는 경우 build.gradle 파일에 다음 종속성을 추가합니다:

dependencies {
    implementation 'org.flywaydb:flyway-core:7.0.0'
}

데이터베이스 마이그레이션 파일 작성하기

Flyway는 마이그레이션 스크립트를 적용하여 데이터베이스 스키마를 업데이트합니다. 마이그레이션 스크립트는 버전별로 작성되며, 파일 이름에는 버전 번호와 설명이 포함되어야 합니다.

예를 들어, V1__create_users_table.sql 파일은 첫 번째 마이그레이션 스크립트를 나타냅니다. 이 파일에는 CREATE TABLE 문이 포함되어야 하며, Flyway는 이를 실행하여 데이터베이스에 users 테이블을 생성합니다.

애플리케이션에서 Flyway 설정하기

Flyway를 애플리케이션에서 사용하려면 설정 파일(application.properties 또는 application.yml)에 다음 정보를 추가해야 합니다:

spring.flyway.url=jdbc:mysql://localhost:3306/my_database
spring.flyway.user=my_user
spring.flyway.password=my_password
spring.flyway.locations=classpath:db/migration

위 설정에서 spring.flyway.url은 데이터베이스의 URL을, spring.flyway.user는 데이터베이스 사용자 이름을, spring.flyway.password는 데이터베이스 암호를 나타냅니다. spring.flyway.locations는 마이그레이션 스크립트가 위치한 경로를 지정합니다.

애플리케이션 실행하기

Flyway 설정과 마이그레이션 스크립트가 준비되면 애플리케이션을 실행하여 데이터베이스 초기화를 수행할 수 있습니다. 애플리케이션을 실행하면 Flyway가 설정된 데이터베이스에 대해 마이그레이션을 수행하고 스키마를 업데이트합니다.

결론

Flyway를 사용하면 Java 애플리케이션에서 데이터베이스 스키마를 간편하게 버전 관리할 수 있습니다. Flyway를 설정하고 마이그레이션 스크립트를 작성하여 데이터베이스 초기화를 수행해보세요. Flyway는 데이터베이스 버전 관리를 간편하게 만들어주며, 여러 개발자가 동시에 작업하는 경우의 충돌도 방지해줍니다.

참고 자료