[java] Flyway를 사용하여 Java 애플리케이션에서 데이터베이스 스키마 버전 관리하기
소개
Flyway는 데이터베이스 스키마 관리를 위한 오픈 소스 도구입니다. Java 애플리케이션에서 쉽게 사용할 수 있으며, 데이터베이스의 스키마 변경을 관리하고 버전을 트래킹할 수 있습니다.
설정하기
Flyway를 사용하기 위해서는 몇 가지 설정이 필요합니다.
- Maven 또는 Gradle에 Flyway를 종속성으로 추가합니다.
- 데이터베이스 연결 정보를 설정합니다.
- 마이그레이션 스크립트를 작성합니다.
데이터베이스 연결 정보 설정하기
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는 스키마 버전 관리를 효율적으로 도와줄 것입니다.