[java] Flyway와 Java 애플리케이션의 데이터베이스 변경 로그
개요
Flyway는 데이터베이스 스키마 버전 관리 도구로, Java 애플리케이션과 함께 사용될 수 있습니다. 이 문서에서는 Flyway와 Java 애플리케이션을 함께 사용할 때 데이터베이스 변경 로그를 작성하고 적용하는 방법에 대해 알아보겠습니다.
Flyway 설정하기
- pom.xml 파일에 Flyway 종속성을 추가합니다. ```xml
2. **application.properties** 파일에 데이터베이스 연결 정보를 설정합니다.
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
데이터베이스 변경 로그 작성하기
-
db/migration
폴더를 생성합니다. 여기에 Flyway가 적용할 데이터베이스 변경 로그를 작성합니다. -
변경 로그 파일의 이름은 반드시
V{버전 번호}__{변경 내용}.sql
형식을 따라야 합니다. 예를 들어,V1__create_table.sql
과 같은 이름을 사용할 수 있습니다. -
변경 내용을 작성합니다. 예를 들어, 아래는
my_table
이라는 테이블을 생성하는 SQL문입니다.CREATE TABLE my_table ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
데이터베이스 변경 로그 적용하기
- 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(); } } ```
- 애플리케이션을 실행하면 Flyway는
db/migration
폴더에 있는 변경 로그를 데이터베이스에 적용합니다.
추가적인 기능
Flyway는 데이터베이스 스키마 관리 작업을 지원하기 위해 다양한 기능을 제공합니다. 아래는 Flyway의 몇 가지 주요 기능입니다.
validate
: 변경 로그의 유효성을 검사합니다.clean
: 모든 변경 로그를 제거하고 데이터베이스를 초기 상태로 되돌립니다.info
: 현재 데이터베이스의 상태와 적용된 변경 로그의 정보를 출력합니다.
Flyway 공식 문서에서 자세한 내용을 확인할 수 있습니다.
참고 자료
- Flyway 공식 문서: https://flywaydb.org/documentation
- Spring Boot와 Flyway 사용하기: https://spring.io/guides/gs/mbg