[Mybatis] 마이그레이션 예제

데이터베이스 마이그레이션은 데이터베이스 스키마의 변경을 관리하는 프로세스를 의미합니다. 새로운 기능의 추가, 데이터 타입 변경, 테이블 구조 변경 등의 작업을 수행할 때 사용됩니다. 이를 통해 애플리케이션과 데이터베이스를 업데이트하거나 변경된 스키마에 맞게 조정할 수 있습니다.

마이그레이션 도구 중 하나인 Flyway를 사용하는 마이그레이션 예제를 살펴보겠습니다.

예제: Flyway를 사용한 데이터베이스 마이그레이션

  1. 먼저 Maven 또는 Gradle 프로젝트에 Flyway 의존성을 추가합니다.

  2. Flyway 설정 파일인 flyway.conf를 프로젝트 루트에 생성하고 데이터베이스 연결 정보를 설정합니다.

flyway.url=jdbc:mysql://localhost:3306/mydb
flyway.user=root
flyway.password=password
flyway.locations=filesystem:src/main/resources/db/migration` 
  1. src/main/resources/db/migration 경로에 마이그레이션 스크립트 파일을 생성합니다.

마이그레이션 스크립트 파일: V1__Create_books_table.sql

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255),
    author VARCHAR(255)
);` 

위의 스크립트 파일은 V1__Create_books_table.sql로, 테이블을 생성하는 작업을 수행합니다.

  1. 마이그레이션 스크립트 파일을 생성한 후에 애플리케이션을 실행하거나 명령어를 사용하여 Flyway를 실행합니다.

커맨드 라인 실행:

flyway migrate` 

Flyway는 스크립트 파일의 버전을 기록하며, 버전이 높은 파일부터 실행하여 데이터베이스 스키마를 변경하게 됩니다. 이렇게 마이그레이션을 수행하면 데이터베이스 스키마가 변경되어 새로운 테이블이나 필드가 추가될 때 애플리케이션과 데이터베이스를 업데이트할 수 있습니다.

위의 예제는 Flyway를 사용한 데이터베이스 마이그레이션을 보여주는 것입니다. Flyway 외에도 다양한 데이터베이스 마이그레이션 도구가 있으며, 선택한 도구에 따라 사용법이 조금씩 다를 수 있습니다.