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는 건너뛴다는 점이다. V2 부터 적용된다.

 

'Data Store' 카테고리의 다른 글

docker 안의 DB를 사용할 때 timezone 문제  (0) 2021.05.19
[Oracle] Pagination  (0) 2021.05.17
Flyway  (0) 2021.05.13
[Oracle] longest match  (0) 2021.02.16
DB 이중화 / 클러스터링  (0) 2020.09.23
redis  (0) 2020.03.10