[java] 스프링 부트와 하이버네이트를 사용한 데이터베이스 마이그레이션

스프링 부트와 하이버네이트를 사용하여 데이터베이스 마이그레이션을 수행하는 방법을 배우겠습니다. 데이터베이스 마이그레이션이란 스키마, 데이터, 뷰, 프로시저 등과 같은 데이터베이스 구조의 변화를 관리하는 것을 말합니다. 이를 통해 데이터베이스의 변경 내용을 추적하고, 여러 환경 간의 일관성을 유지할 수 있습니다.

1. 의존성 추가

먼저, pom.xml 파일에 하이버네이트와 관련된 의존성을 추가합니다.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

2. 마이그레이션 설정

하이버네이트는 application.properties 파일에서 여러 데이터베이스 설정을 제공합니다. 데이터베이스 연결 정보와 함께 하이버네이트 마이그레이션 설정을 추가합니다.

spring.datasource.url=jdbc:mysql://localhost:3306/db_name
spring.datasource.username=db_user
spring.datasource.password=db_password

spring.jpa.hibernate.ddl-auto=update

이 설정은 데이터베이스 스키마의 변경 사항을 자동으로 감지하고 업데이트합니다.

3. 엔티티 생성

마이그레이션을 수행하기 위해 데이터베이스 테이블에 대응하는 엔티티를 생성합니다.

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Book {
    @Id
    @GeneratedValue
    private Long id;
    private String title;
    private String author;
    // getters and setters
}

4. 마이그레이션 실행

이제 스프링 애플리케이션을 실행하여 하이버네이트가 데이터베이스 마이그레이션을 수행합니다. 데이터베이스에는 새로운 book 테이블이 생성되어 있을 것입니다.

이상으로 스프링 부트와 하이버네이트를 사용한 데이터베이스 마이그레이션 방법을 알아보았습니다. 데이터베이스 스키마에 변경 사항이 발생할 때마다 이와 같은 방법으로 마이그레이션을 실행하여 데이터베이스를 안전하게 유지할 수 있습니다.

참고 문헌:

수고하셨습니다!