[java] Flyway를 사용한 Java 애플리케이션의 데이터베이스 스키마 버전 롤백

Flyway는 데이터베이스 스키마 버전 관리를 위한 오픈 소스 도구로, Java 애플리케이션에서 쉽게 사용할 수 있습니다. Flyway를 사용하면 데이터베이스 스키마를 버전 관리하고, 스키마 변경 사항을 쉽게 적용하고 롤백할 수 있습니다.

이번 블로그 포스트에서는 Flyway를 사용하여 Java 애플리케이션의 데이터베이스 스키마 버전을 롤백하는 방법에 대해 알아보겠습니다.

Flyway 설치 및 설정

Flyway를 사용하기 위해서는 먼저 Flyway를 프로젝트에 설치해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 Flyway 의존성을 추가하면 됩니다.

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

Flyway의 설정 파일인 flyway.conf 파일을 프로젝트에 추가합니다. 이 파일에는 데이터베이스 연결 정보와 버전 관리를 위한 스크립트 경로 등의 설정이 포함됩니다.

데이터베이스 마이그레이션

Flyway를 사용하여 데이터베이스 스키마를 변경하는 작업을 마이그레이션(Migration)이라고 합니다. 마이그레이션은 스키마 변경에 필요한 SQL 스크립트를 작성하고, 이를 Flyway가 자동으로 실행하게 함으로써 이루어집니다.

마이그레이션 작업은 SQL 스크립트를 순차적으로 실행하면서 데이터베이스 스키마를 변경합니다. Flyway는 이전에 적용한 마이그레이션 스크립트의 상태를 관리하여, 현재까지 적용한 마이그레이션 버전을 기록합니다.

롤백(Rollback)

Flyway를 사용하면 마이그레이션을 롤백하여 이전 버전의 데이터베이스 스키마로 복원할 수 있습니다. 롤백은 이전에 적용한 마이그레이션 스크립트를 역순으로 실행하여 스키마 변경을 취소하는 것입니다.

롤백은 Flyway 명령행 도구를 사용하여 수행할 수 있습니다. 아래 명령어를 사용하여 롤백을 수행할 수 있습니다.

flyway undo -count=<n>

<n>은 롤백할 버전의 수를 지정하는 매개변수입니다. 예를 들어, -count=1을 지정하면 가장 최근에 적용한 마이그레이션을 롤백합니다.

롤백이 완료되면 Flyway는 롤백한 마이그레이션 버전을 기록하고, 데이터베이스 스키마는 롤백한 버전으로 복원됩니다.

Flyway를 사용한 Java 애플리케이션의 데이터베이스 스키마 버전 롤백은 위와 같이 간단하게 수행할 수 있습니다. Flyway를 잘 활용하여 데이터베이스 스키마를 효과적으로 관리하고 변경 사항을 롤백하는 데 유용하게 활용해보세요.

참고 자료