DB migration 툴 Flyway에 대해 알아보자. DB migration이라고 하면 싸피에서 처음으로 Django를 배웠을 때 model의 내용을 연결한 DB(당시에는 sqlite)에 적용시켰던 게 기억난다. Flyway도 그러한 DB migration을 해주는 도구다. 하지만 어떤 특정 프레임워크에 의존적이지 않은 '오픈 소스' 툴이다.
Flyway를 사용하는 이유
- 이미 배포된 서비스의 DB가 있다. 스키마도 복잡하고 사용자 데이터도 많이 쌓인 상태다. 이 상태에서 model(entity)에 변화가 생긴다면 어떻게 적용해야 할까? DB에 직접 접속해서 매뉴얼하게 명령어를 칠 수도 있지만, Flyway를 적용하면 로컬에서 변경 사항을 적용하면 알아서 관리해준다. 휴먼 에러를 방지하기 위한 목적이 큰 것이다.
- 또한 형상 관리의 의미가 있기 때문에 어떤 변경 사항이 있었는지 파악하기도 쉽다.(like git)
- 재택근무를 할 때 좋다. 각자의 로컬 DB의 내용이 달라도 Flyway로 일치시킬 수 있다.
사용법
- DB 접속 정보를 Flyway의 설정 파일에 기록하여 접근 가능하도록 한다.
- flyway 명령어를 통해 수정된 model의 내용을 migration한다.
- gradle, maven, CLI, JAVA API 등으로 실행할 수 있다.
- *의존성 및 애플리케이션 설정의 경우 서버 프레임워크에 따라 각기 다르기 때문에 내가 사용하려는 프레임워크에 따라 찾아보고 적용하는 것이 좋다.
ref
https://tecoble.techcourse.co.kr/post/2021-10-23-flyway/
https://sabarada.tistory.com/193
https://dallog.github.io/dallog-flyway/
'Programming > Database' 카테고리의 다른 글
DBeaver란? + PostgreSQL과 연결하기 (0) | 2023.01.09 |
---|---|
PostgreSQL이란? (0) | 2022.12.22 |
댓글