컬쥐네 다락방
Flyway를 이용한 DB 초기화 본문
요즘 기업들을 과제를 하면서 하나 둘 배우는게 정말 많은데 바쁘다는 핑계로 정리해두는 일을 미루고있다 .
반성하며 간단히라도 적어놓고 나중에 다시 찾아보는 일이 없도록 해보자 !
Spring을 이용하면 Spring JPA의 spring.jpa.generate.ddl 이나 Hibernate의 hbm2ddl.auto 등의 기능을 사용할 때가 많다. 프로그램을 구동할 때 @Entity 라는 어노테이션을 찾아서 자동으로 테이블을 생성하고 맵핑을 해준다.
이런 기능을 사용하면 간단하게 DB 관리를 할 수 있어서 편한다는 장점이 있지만, 테이블 스키마가 변경되거나, 필수로 초기에 들어가야하는 데이터들이 수정되었을 때 히스토리 관리가 잘 되지 않는다는 단점이 있다.
Flyway는 이런 히스토리 관리쪽에서 장점이 있다 !
Flyway를 사용하기 위해서는 Gradle 기준으로
1. plugins에 flyway를 넣어주기.
2. dependencies와 별도로 flyway 설정을 넣어주기
3. 위에서 설정한 위치에 파일을 만들어주기
보통은 resources 폴더에 db/migration 속에 만드는 것이 정석!
여기서 파일명에는 V + 버전 + __ + 설명. sql 같은 규칙이 있다. 이후 새로운 버전의 파일을 하나씩 만들어가면서 변경 사항을 적용해가며 버전을 올려간다! V1, V2 혹은 V1.0, V1.1 같이.
이렇게 동작하게 되면 자동으로 SCHEMA_VERSION 이라는 테이블이 생기게되는데 그곳에 인덱스, 버전명, 설명, SQL or JDBC 타입, 스트립트 이름, 실행 주최자, 시간, 성공 여부 등이 기록되면서 히스토리를 쉽게 찾아볼 수 있게 된다.
SQL 파일은 SQL 문법을 사용해서 적어주면 된다.
'웹 개발 > Java,Spring' 카테고리의 다른 글
AngularJS commit conventions - 커밋 메시지 (0) | 2021.11.25 |
---|---|
getById()와 findById()의 차이점 (0) | 2021.09.03 |
JWT와 OAuth 차이점 (2) | 2021.07.05 |
RESTful API 란? (0) | 2021.06.29 |
Spring MVC 란? (0) | 2021.06.14 |