[스프링] JPA와 마이그레이션

이번 포스트에서는 스프링 부트 애플리케이션에서 Hibernate를 사용하여 데이터베이스 마이그레이션을 수행하는 방법에 대해 알아보겠습니다.

1. 의존성 추가

먼저 build.gradle 또는 pom.xml 파일에 HibernateFlyway 의존성을 추가합니다.

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'

2. 데이터베이스 설정

다음으로 application.properties 또는 application.yml 파일을 이용하여 데이터베이스 설정을 정의합니다.

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=username
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=none
spring.flyway.locations=classpath:db/migration

3. 마이그레이션 스크립트 작성

src/main/resources/db/migration 폴더에 마이그레이션 스크립트를 작성합니다.

V1__create_table.sql

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(50) NOT NULL
);

4. 애플리케이션 실행

이제 스프링 부트 애플리케이션을 실행하면 Flyway가 설정된 위치에서 마이그레이션 스크립트를 찾아 실행합니다.

결론

HibernateFlyway를 사용하여 스프링 부트 애플리케이션에서 데이터베이스 마이그레이션을 손쉽게 수행할 수 있습니다.

더 많은 정보를 원하신다면 Hibernate 공식 문서Flyway 공식 문서를 참고하시기 바랍니다.