[java] Flyway를 Java 프로젝트에 적용하는 방법은?

Flyway는 데이터베이스 마이그레이션(이력 관리) 도구로, Java 프로젝트에서 데이터베이스 스키마 업데이트를 관리하기 위해 널리 사용됩니다. Flyway를 Java 프로젝트에 적용하는 방법은 다음과 같습니다.

  1. 의존성 추가: 먼저, Maven이나 Gradle 같은 빌드 도구의 의존성 관리 파일에 Flyway를 추가해야 합니다. Maven의 경우, pom.xml 파일에 다음과 같이 의존성을 추가합니다.
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>7.0.0</version>
</dependency>

Gradle의 경우, build.gradle 파일에 다음과 같이 의존성을 추가합니다.

implementation 'org.flywaydb:flyway-core:7.0.0'
  1. Flyway 설정: Flyway를 사용하기 위해 데이터베이스 연결 정보를 설정해야 합니다. application.properties 또는 application.yml 파일에 다음과 같이 설정합니다.
flyway.url=jdbc:mysql://localhost:3306/db_example
flyway.user=username
flyway.password=password
  1. 마이그레이션 스크립트 작성: Flyway는 데이터베이스 스키마 변경을 위한 마이그레이션 스크립트를 사용합니다. src/main/resources/db/migration 폴더를 생성하고, 마이그레이션 스크립트를 작성합니다. 스크립트 파일은 숫자로 시작하여 순서를 나타내야 합니다. (예: V1__create_table.sql, V2__add_column.sql)
-- V1__create_table.sql
CREATE TABLE my_table (
  id INT PRIMARY KEY,
  name VARCHAR(50)
);
-- V2__add_column.sql
ALTER TABLE my_table ADD email VARCHAR(100);
  1. 애플리케이션에서 Flyway 초기화: 애플리케이션을 시작할 때 Flyway를 초기화해야 합니다. 다음은 Spring Boot 애플리케이션에서 Flyway를 초기화하는 예입니다.
@SpringBootApplication
public class MyApp {
  
  public static void main(String[] args) {
    SpringApplication.run(MyApp.class, args);

    Flyway flyway = Flyway.configure()
      .dataSource("jdbc:mysql://localhost:3306/db_example", "username", "password")
      .load();
    
    flyway.migrate();
  }
}

Flyway 설정과 마이그레이션 스크립트를 정의한 뒤에 애플리케이션을 실행하면 Flyway가 초기화되고, 설정된 마이그레이션 스크립트가 자동으로 실행됩니다.

Flyway를 사용하면 데이터베이스 스키마 변경을 쉽게 관리할 수 있으며, 애플리케이션 배포 시 자동으로 마이그레이션 스크립트를 실행하여 데이터베이스를 업데이트할 수 있습니다.

더 자세한 내용은 Flyway 공식 문서 [^1^]를 참고하시기 바랍니다.