[java] Flyway와 Java 애플리케이션의 데이터베이스 변경 로그

개요

Flyway는 데이터베이스 스키마 버전 관리 도구로, Java 애플리케이션과 함께 사용될 수 있습니다. 이 문서에서는 Flyway와 Java 애플리케이션을 함께 사용할 때 데이터베이스 변경 로그를 작성하고 적용하는 방법에 대해 알아보겠습니다.

Flyway 설정하기

  1. pom.xml 파일에 Flyway 종속성을 추가합니다. ```xml
org.flywaydb flyway-core 7.7.3

2. **application.properties** 파일에 데이터베이스 연결 정보를 설정합니다.
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

데이터베이스 변경 로그 작성하기

  1. db/migration 폴더를 생성합니다. 여기에 Flyway가 적용할 데이터베이스 변경 로그를 작성합니다.

  2. 변경 로그 파일의 이름은 반드시 V{버전 번호}__{변경 내용}.sql 형식을 따라야 합니다. 예를 들어, V1__create_table.sql과 같은 이름을 사용할 수 있습니다.

  3. 변경 내용을 작성합니다. 예를 들어, 아래는 my_table이라는 테이블을 생성하는 SQL문입니다.

    CREATE TABLE my_table (
    id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
    );
    

데이터베이스 변경 로그 적용하기

  1. Java 애플리케이션의 메인 클래스에서 Flyway를 초기화합니다. ```java import org.flywaydb.core.Flyway;

public class MyApp { public static void main(String[] args) { // Flyway 초기화 Flyway flyway = Flyway.configure() .dataSource(“jdbc:mysql://localhost:3306/mydb”, “myuser”, “mypassword”) .locations(“classpath:db/migration”) .load();

  // 변경 로그 적용
  flyway.migrate();    } } ```
  1. 애플리케이션을 실행하면 Flyway는 db/migration 폴더에 있는 변경 로그를 데이터베이스에 적용합니다.

추가적인 기능

Flyway는 데이터베이스 스키마 관리 작업을 지원하기 위해 다양한 기능을 제공합니다. 아래는 Flyway의 몇 가지 주요 기능입니다.

Flyway 공식 문서에서 자세한 내용을 확인할 수 있습니다.

참고 자료