마이그레이션
데이터베이스 마이그레이션이란?
기존 데이터베이스의 스키마와 데이터를 새로운 버전 또는 구조로 이전하는 작업으로 이를 통해 데이터베이스 시스템을 업그레이드하거나 확장할 수 있다. 마이그레이션은 데이터의 백업, 변환, 이동 등의 작업을 포함하며, 데이터의 일관성과 무결성을 유지하고 새로운 데이터베이스 버전으로 전환되며 시스템의 안정성과 확장성을 유지할 수 있다.
1. 동작 흐름
Application Context → Flyway 실행 → 스키마 생성 → hibernate validation(검증) → 적합한 스키마 실행→ 애플리케이션 실행 완료
2. Flyway를 사용한 데이터베이스 마이그레이션 방법
Flyway는 데이터베이스 마이그레이션을 관리하기 위한 오픈 소스 도구이다.
2-1) 의존성 추가
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
2-2) application.properties 파일 설정 추가
spring.jpa.hibernate.ddl-auto=validate
spring.jpa.generate-ddl=false
- DDL 검증 옵션을 추가한다. 실제 DB 테이블과 Entity 클래스의 맵핑을 검증한다.
2-3) 마이그레이션 디렉토리 생성
- 경로 : resources > db > migration
- db/migration 또는 db/migration/{vendor} (vendor = postgreSQL, MySQL 등)
2-4) 마이그레이션 파일 생성
* 이름 규칙
V숫자__이름.sql
- V는 대문자, 숫자는 순차(타임스탬프 권장), 숫자와 이름 사이에 언다바 두개, 이름은 서술적으로 생성
- 세미콜론(;) 추가해야 한다.
- 한번 적용된 SQL 스크립트 파일은 절대 건드려서는 안된다. 새롭게 변경 사항이 있다면 새로운 파일을 생성해 줘야한다.
- Flyway 테이블이 자동으로 생성되고, 마이그레이션 정보를 담고있다.
반응형
'Java' 카테고리의 다른 글
[Spring Boot/Spring Cloud] MSA - Netflix Eureka 서버/클라이언트 구축 (0) | 2023.07.23 |
---|---|
[Spring Boot] Spring Security 권한 설정 및 사용 방법 (0) | 2023.07.06 |
[Spring Boot] Spring Data JPA 데이터 초기화 (0) | 2023.07.03 |
[Spring Boot] Spring Data JPA 연동 방법 (0) | 2023.07.02 |
[Spring Boot] DBCP와 MySQL 개념 및 사용 방법 (0) | 2023.07.01 |