반응형

2022.07.07 - [개발/spring] - [liquibase] springboot과 연동가능 한 db형상관리 툴

 

[liquibase] springboot과 연동가능 한 db형상관리 툴

liquibase란? Liquibase is a database schema change management solution that enables you to revise and release database changes faster and safer from development to production. DB변경 정보를 관리하..

bangpurin.tistory.com

 

이전에 liquibase에 대해 알아본 적이 있다. 그 외로 알고 있던 flyway와의 차이점이 궁금하여 비교해본다.

 

공통점

  • DB 스키마 변화를 관리하는 도구
  • 오픈소스 기반
  • 자바와 연동 가능; springboot, vert.x
  • maven, gradle과 연동 가능
  • cli와 독립적으로 작동 가능
  • 여러 DB 지원

 

차이점

  flyway liquibase
변화 정의 sql 작성 xml, yaml, json 으로 정의
변화 파일 규칙 prefix: V (for versioned), U (for undo), and R (for repeatable)
separator: __(two underscores)
suffix: .sql
V01__Add_New_Column.sql
이름 규칙 없음
로깅 테이블 flyway_schema_history databasechangelog
수정 순서 관리 변화 파일 명의 버전 순서대로 master_changelog 파일에 순서 작성
롤백 (유료버전) 취소해야하는 부분의 파일 이후에 변화 파일의 이름을 U로 해서 실행 (유료버전) 전체 롤백/ 버전별 취소(undo)가능
수정 부분반영(환경별) 각 환경별 config 파일을 다르게 세팅해서 context, label 이라는 기능을 통해서 일부만 반영가능(마치 태그를 걸러 그 태그만 모아서 적용)
자바 기반의 migration지원 지원, 자바 파일 안에서의 migration을 정의가능 지원 안 함
스냅샷 지원 안 함 지원
pre-condition(조건부 적용) 지원 안 함(procedure를 이용해 적용) 지원

 

when to use?

Flyway

  • java코드나 sql문을 통해 변화 적용, DB에 직접적인/full control 필요할 경우(ex. oracle, postgresql)

 

Liquibase

  • xml, yaml, json 사용 가능 -> 다양한 환경, 다양한 DB언어에 대응 가능
728x90
반응형

'개발 > sql' 카테고리의 다른 글

[mysql] 유저의 등수 구하기 rank under v8  (0) 2024.02.06
[DB] 분산환경에서 데이터 저장소 선택과 활용  (0) 2023.07.24
[mysql] jsonpath  (0) 2022.05.27
[sql] case vs if  (0) 2022.05.02
[sql] aggregate / window function(mysql)  (0) 2022.05.02

+ Recent posts