[java] Flyway를 사용하여 Java 애플리케이션의 데이터베이스 이력 조회

Flyway는 데이터베이스 마이그레이션 관리 도구로, Java 애플리케이션과 함께 사용할 수 있습니다. 이를 통해 애플리케이션의 데이터베이스 스키마와 이력을 관리할 수 있습니다. 이 글에서는 Flyway를 사용하여 데이터베이스 이력을 조회하는 방법을 알아보겠습니다.

1. 의존성 추가

먼저, 프로젝트에 Flyway를 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음과 같이 의존성을 추가하세요:

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>7.5.0</version>
</dependency>

Gradle을 사용한다면 build.gradle 파일에 다음과 같이 의존성을 추가하세요:

dependencies {
    implementation 'org.flywaydb:flyway-core:7.5.0'
}

2. Flyway 구성

Flyway를 사용하기 위해 Flyway 객체를 구성해야 합니다. 다음은 간단한 구성 예시입니다:

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

위의 예시에서 사용한 dataSource 메서드의 첫 번째 매개변수는 데이터베이스 연결 URL입니다. 두 번째 매개변수와 세 번째 매개변수는 각각 데이터베이스 사용자 이름과 비밀번호입니다. 이들은 실제로 사용하는 데이터베이스 연결 정보로 대체되어야 합니다.

3. 데이터베이스 이력 조회

Flyway를 사용하면 다양한 방법으로 데이터베이스 이력을 조회할 수 있습니다. 일반적으로는 Flyway의 info 명령을 사용하여 조회합니다. 다음은 이를 위한 코드 예시입니다:

flyway.info().all()
    .forEach(info -> System.out.println(info.getVersion() + " - " + info.getDescription()));

위의 예시에서는 info 객체의 all 메서드를 호출하여 모든 이력 정보를 가져옵니다. 그리고 각 이력의 버전과 설명을 출력합니다.

4. 실행 결과

위의 코드를 실행하면 데이터베이스에 적용된 모든 마이그레이션 이력의 버전과 설명이 출력됩니다. 예를 들면 다음과 같은 결과를 볼 수 있습니다:

1.0 - Initial migration
1.1 - Add users table
1.2 - Add posts table

이렇게 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 이력을 조회할 수 있습니다. Flyway는 데이터베이스 마이그레이션의 다양한 측면을 관리해주므로 개발자들에게 유용한 도구입니다.

참고 자료