본문 바로가기
IT/Knowledge

[Flyway] DB Migration 도구 (migraion)

by 성준하이 2023. 10. 8.
반응형

포스팅에 앞서 먼저 알고 넘어가야하는 용어가 마이그레이션이다.

 

마이그레이션이란?(migration)
단어의 뜻은 이주 의 의미를 갖고있다.
의미 그대로 IT에서도 다른 환경으로 데이터를 옮기든 코드를 옮기든
이런 이관 작업을 의미한다.

오늘 다룰 Flyway는 DB migration 도구라고 생각을 하면 된다.

또는 다르게 생각하면 DB 형상관리라고 생각이 된다.

 

형상관리에 대해서는 아래 참고 포스팅을 참고 바란다.

 

만약 백엔드에서 사용중인 데이터베이스 테이블에 테이블 변화가 생긴다면 어떻게 해야할까?
cloud에 올린 db라면 괜찮지만 아직 dev 환경이 구축되지 않아 local에서 각각의 db를 구축하여 개발을 해야 할 경우에 말이다.

 

  1. sql 문 자체를 만들어서 팀원들과 공유를 하며 형상을 관리해야한다.
  2. Java Spring 에서 JPA를 사용중이라면
    spring.jpa.hibernate.ddl-auto 에서 create나  update 를 설정해두면 되긴하는데
    create 는 만들어지는거라 그렇다 쳐도 update에서는 컬럼명을 변경하면 변경이 아닌 새로운 컬럼으로 인식이 되게 된다.

 

그럴 경우에 flyway를 사용하면 된다.

오픈소스이며 사이트는 아래와 같다.

https://flywaydb.org/

 

Homepage - Flyway

Version control for your database. Robust schema evolution across all your environments. With ease, pleasure, and plain SQL.

flywaydb.org

 

spring에서의 실습은 추후에 만들고 포스팅 예정이다.

 

flyway 의 주의점은 아래와 같다.

  1. 버전이 더 높은 경우에만 적용이 된다.
  2. 이전버전을 갑자기 변경하거나 지우면 안된다.

 

결론적인 사용 이유는 아래와 같다.

  1. 반복적인 작업으로 인해 번거로움
  2. 사람이 직접하기에 휴먼에러
  3. 버전관리, 이력 관리
  4. 환경 분리

참고 포스팅

https://thenicesj.tistory.com/98

 

git / github ?

이전 포스팅에 젠킨스라고 소개를 하나 했었다. 궁금하신 분들은 아래 참고 포스팅 참고 바란다. 젠킨스는 여러사람이 작업을 할때 지속적으로 통합을 해준다고 하였다. 그럼 통합을 하기 위해

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

Webhook 이란?  (40) 2023.11.15
[암호화] AES-128과 SHA-256  (50) 2023.10.16
callback VS fallback (차이)  (48) 2023.10.07
OpenAI 란?  (50) 2023.10.06
127.0.0.1 / localhost (LoopBack IP 주소)  (59) 2023.10.05

댓글