728x90
DB 마이그레이션이란?
- 기존 데이터베이스의 스키마와 데이터를 새로운 버전 또는 구조로 이전하는 작업
- 데이터의 백업, 변환, 이동 등의 작업을 포함
- 데이터베이스 시스템을 업그레이드하거나 확장
- 데이터의 일관성과 무결성을 유지하고 새로운 데이터베이스 버전으로 전환
- 시스템의 안정성과 확장성을 유지
동작 흐름
Application Context → Flyway 실행 → 스키마 생성 → hibernate validation(검증) → 적합한 스키마 실행→ 애플리케이션 실행 완료
Flyway는 스프링에서 DB 마이그레이션을 관리하는 오픈소스 도구.
이를 스프링에 적용하기 위해 먼저 Dependency에 Flyway관련 내용을 입력한다.
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
application.properties 파일 설정 추가
spring.jpa.hibernate.ddl-auto=validate
# Hibernate가 데이터베이스 스키마를 자동으로 생성 또는 업데이트할 때의 동작을 지정
spring.jpa.generate-ddl=false
# 애플리케이션을 시작할 때 Hibernate가 데이터베이스 스키마를 검증하여 엔티티 클래스와의 일치 여부를 확인하고,
# 실제로 데이터베이스에는 영향을 주지 않는다는 의미
두 속성을 함께 사용하면서 애플리케이션의 데이터베이스 스키마 관리 방식을 정확히 제어하기
이후 작업
- 경로 : resources > db > migration에 db.migration 생성
- 마이그레이션 파일 생성
- 이름 규칙은 V숫자__이름.sql
- 한번 적용된 SQL 스크립트 파일은 절대 건드려서는 안된다. 새롭게 변경 사항이 있다면 새로운 파일을 생성.
'Framework > Spring' 카테고리의 다른 글
[Spring] OOP와 비교하여 AOP 공부 (0) | 2024.04.17 |
---|---|
[Spring] Security 설정 클래스 생성(세션 Stateless) (0) | 2024.04.17 |
[Spring] DTO (0) | 2024.04.17 |
[Spring] 회원가입 코드 통해 스프링 구조와 흐름 복습하기 (0) | 2024.04.11 |
[Spring] Java 프로젝트 빌드를 위한 Gradle과 Maven의 비교 (0) | 2024.04.09 |