개발/sql
[형상관리] flyway vs liquibase
방푸린
2022. 7. 8. 16:24
반응형
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
반응형