Flyway
flyway는 DB에 schema_version 테이블을 유지하면서, DB 상태를 버전으로 관리할 수 있게끔 도와준다.
(나중에 DB를 실행해도 버전에 맞게 데이터를 밀어넣어준다.)
DB에 데이터가 존재하는 상태에서 flyway를 적용할 때 발생하는 문제
```
Caused by: org.flywaydb.core.api.FlywayException: Found non-empty schema "SYSTEM" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.
```
- DB가 비어있지 않아(상태를 가지고 있어) flyway를 적용할 수 없다는 것. flyway를 사용하려면 DB 상태에 대한 버전 관리가 되어야 한다.
- 설명 대로 baseline() 호출하면 현재 상태를 최초 상태 (V1)으로 만들어준다.
- 이렇게 되면 DB에 이미 V1이 존재하므로, V1 script가 있으면 migrate 시 이미 있는 버전이라고 예외가 발생한다. (V2 script 부터 migrate해야함)
- 하지만 V1 부터 관리하는 것이 편하므로... baseline() 호출 전 baselineVersion을 0으로 설정하면, 초기 상태가 V0로 세팅되어 V1부터 migrate 가능하다.
'RDBMS > specific' 카테고리의 다른 글
docker 안의 DB를 사용할 때 timezone 문제 (0) | 2021.05.19 |
---|---|
PostgreSQL 설치 (0) | 2020.12.04 |
[Oracle] 오라클 개요 및 정리 (0) | 2019.05.31 |
DB 접근 툴 : Universal Database Tool (0) | 2019.05.27 |
[mysql] 일반적인 SQL (0) | 2017.06.11 |