사이드프로젝트 정리2 (DB 마이그레이션, Flyway)

이봐요이상해씨·2022년 3월 29일
0

사이드프로젝트

목록 보기
2/3

실제 AWS 에서 프로젝트를 실행시키기 위해 AWS의 RDS를 사용하기로 하였습니다. 그래서 로컬 DB에서 만들었던 테이블을 RDS에서도 그대로 적용할 방법이 없나 찾던중 DB migration tool인 flyway를 찾게 되었고 이를 적용하였습니다.

Flyway?

Flyway는 DB 형상관리 툴로 변경된 데이터베이스의 스키마나 데이터를 버전별로 관리하고 누락을 방지합니다.

실제로 툴을 적용시키고 DB에 접속해서 보면 다음과 같이 버전별로 적용되고 관리됨을 알 수 있습니다.
또한 checksum 값으로 해당 스크립트의 변조여부를 확인하여 불일치시 에러가 납니다

또한 다양한 네이밍 방식으로 대상파일의 버전을 파일명을 통해 구분할 수 도 있습니다.

적용하기

의존성을 다음과 같이 추가합니다

	// flyway 설정
	implementation 'org.flywaydb:flyway-core'

application.yml 파일에 다음과 같이 설정합니다

  #  #flyway setting
  flyway:
    sql-migration-suffixes: .sql
    locations: classpath:/db/migration
    baseline-on-migrate: true
    baseline-version: 0 : 시작할 버전 번호 설정

https://flywaydb.org/documentation/concepts/migrations

flyway 공식 홈페이지에서 확인하면

prefix : V(버전), U(되돌리기), R(반복) 로 지정해줍니다.
Version : 버전 에서만 사용되며, 점이나 언더스코어(_언더바) 로 구분할 수 있습니다(반복은 제외)
Seperator : 언더바 2개로 구분합니다
Description: 해당 스키마나 변경점을 적습니다
Suffix: 확장자를 적습니다

이 파일들의 위치는

resources -> db -> migration 

에 작성합니다

주의할점은 꼭 버전에 맞춰서 작성해야한다는점, 그리고 시드 파일이 있어야 한다는점(V0, 최초 테이블 생성),언더바 2개로 구분짓지 않으면 인식하지 못한다는 점입니다.

참고 자료
1. https://www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-flyway-db-%EB%A7%88%EC%9D%B4%EA%B7%B8%EB%A0%88%EC%9D%B4%EC%85%98-tool/
2. https://blog.gangnamunni.com/post/introducing-flyway/

0개의 댓글

관련 채용 정보