[java] Flyway를 사용한 Java 애플리케이션의 데이터베이스 테이블 이름 변경하기

이번 글에서는 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 테이블 이름을 변경하는 방법에 대해 알아보겠습니다.

Flyway는 데이터베이스 마이그레이션을 관리하기 위한 오픈 소스 라이브러리입니다. 데이터베이스 스키마의 버전 관리와 변경을 용이하게 해주는 도구로 많이 사용됩니다.

1. Flyway 설정 추가하기

먼저, Flyway를 사용하기 위해 Java 프로젝트에 Flyway를 추가해야 합니다. Maven을 사용하고 있다면 pom.xml 파일에 다음 의존성을 추가합니다.

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

Gradle을 사용한다면 build.gradle 파일에 다음 의존성을 추가합니다.

implementation 'org.flywaydb:flyway-core:7.0.4'

2. 마이그레이션 스크립트 작성하기

Flyway는 마이그레이션 스크립트를 사용하여 데이터베이스의 변경 사항을 관리합니다. 데이터베이스 테이블 이름을 변경하기 위해 새로운 마이그레이션 스크립트를 작성해야 합니다.

V1__rename_table.sql과 같은 파일명을 가진 SQL 스크립트를 생성하고, 스크립트 내부에 테이블 이름 변경을 위한 SQL 구문을 작성합니다. 예를 들어, MySQL에서는 다음과 같이 RENAME TABLE 구문을 사용할 수 있습니다.

RENAME TABLE old_table TO new_table;

3. Flyway 설정 파일 작성하기

Flyway는 마이그레이션 스크립트를 찾기 위해 설정 파일이 필요합니다. Java 리소스 디렉토리에 flyway.conf 파일을 생성하고, 다음과 같이 설정을 추가합니다.

flyway.url=jdbc:mysql://localhost:3306/mydatabase
flyway.user=myuser
flyway.password=mypassword

여기서 flyway.url은 데이터베이스 연결 URL, flyway.user는 데이터베이스 사용자 이름, flyway.password는 데이터베이스 사용자 비밀번호를 나타냅니다. 실제 데이터베이스 정보에 맞게 설정해야 합니다.

4. 애플리케이션에서 Flyway 실행하기

마지막으로, Java 애플리케이션에서 Flyway를 실행하여 데이터베이스의 변경을 적용합니다. 다음은 Spring Framework를 사용하는 경우 Application.java 파일에서 Flyway를 실행하는 예시입니다.

import org.flywaydb.core.Flyway;

public class Application {
    public static void main(String[] args) {
        Flyway flyway = Flyway.configure().load();
        flyway.migrate();
    }
}

Flyway를 실행하면 설정된 데이터베이스에 대해 마이그레이션 스크립트가 자동으로 실행되어 데이터베이스 테이블 이름이 변경됩니다.

마무리

이제 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 테이블 이름을 변경하는 방법을 알아보았습니다. Flyway는 데이터베이스 스키마 관리를 효율적이고 안전하게 할 수 있도록 도와줍니다. Flyway의 다양한 기능을 익히고 활용하여 더욱 효과적인 데이터베이스 관리를 할 수 있습니다.

참고 자료