Flyway는 Java 애플리케이션의 데이터베이스 마이그레이션을 쉽게 관리해주는 도구입니다. Flyway는 SQL 스크립트를 사용하여 데이터베이스 스키마의 버전 관리 및 업데이트를 수행합니다.
Flyway 설치 및 설정
-
Flyway를 설치하기 위해 먼저 Maven이나 Gradle과 같은 의존성 관리 도구를 사용하여 Flyway를 프로젝트에 추가해야 합니다. 의존성 관리 도구를 사용하지 않는 경우, Flyway의 공식 웹사이트에서 다운로드하여 프로젝트에 추가할 수 있습니다.
-
Flyway를 프로젝트에 추가한 후, 데이터베이스 연결 정보를 설정해야 합니다. 이를 위해
flyway.conf
파일을 생성하고 데이터베이스 연결 정보를 설정합니다. 예를 들면 다음과 같습니다:flyway.url=jdbc:mysql://localhost:3306/mydb flyway.user=myuser flyway.password=mypassword
마이그레이션 스크립트 작성
Flyway에서는 마이그레이션 스크립트를 디렉토리 단위로 관리합니다. 스크립트는 특정 버전의 데이터베이스 스키마를 생성하거나 업데이트하는 SQL 문장들로 구성됩니다. 스크립트 파일의 이름은 V<버전 번호>__<설명>.sql
형태로 작성되어야 합니다.
다음은 마이그레이션 스크립트의 예입니다:
-- V1__create_table.sql
CREATE TABLE mytable (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL
);
위 스크립트는 mytable
이라는 테이블을 생성하는 스크립트입니다.
데이터베이스 마이그레이션 실행
Flyway의 콘솔 명령어를 사용하여 데이터베이스 마이그레이션을 실행할 수 있습니다. 프로젝트의 루트 디렉토리에서 다음 명령어를 실행합니다:
flyway migrate
위 명령어는 Flyway가 설정된 데이터베이스에 대해 마이그레이션을 실행합니다. Flyway는 내부적으로 flyway.conf
파일을 참조하여 데이터베이스 연결 정보를 가져옵니다.
Flyway는 마이그레이션 스크립트의 실행 상태를 추적하고, 이미 실행된 스크립트는 재실행하지 않습니다. 따라서 버전 관리 및 중복 실행 방지를 자동으로 처리해줍니다.
추가적인 Flyway 명령어
Flyway는 다양한 명령어를 제공하여 데이터베이스 마이그레이션을 관리할 수 있습니다. 일부 유용한 명령어는 다음과 같습니다:
flyway info
: 마이그레이션 정보를 조회합니다.flyway validate
: 마이그레이션 스크립트의 유효성을 검증합니다.flyway clean
: 모든 마이그레이션 스크립트를 제거하고 데이터베이스를 초기 상태로 되돌립니다.
Flyway의 자세한 사용법과 명령어에 대한 정보는 공식 문서를 참조하십시오.
마무리
Flyway를 사용하면 Java 애플리케이션의 데이터베이스 마이그레이션을 쉽게 관리할 수 있습니다. 마이그레이션 스크립트를 작성하고 Flyway의 콘솔 명령어를 사용하여 데이터베이스를 업데이트하세요. Flyway는 버전 관리와 중복 실행 방지를 자동으로 처리해주므로 안정적인 데이터베이스 마이그레이션을 보장합니다.