Я использую Flyway для обновления схемы БД. В настоящее время самая последняя версия схемы - 3 (последний файл миграции называется V3__postgres.sql
).
Если я запускаю приложение в базе данных, имеющей более старую версию схемы, Flyway выполняет сценарии обновления, как ожидается. Однако, если я запускаю приложение в новой (пустой) базе данных, flyway пытается выполнить сценарии обновления, но не находит таблиц (потому что Hibernate еще не создал их), и приложение завершает работу при ошибке.
Я бы хотел, чтобы Flyway не выполнял сценарии обновления для пустой базы данных, поскольку, когда Hibernate создает таблицы, они все равно будут иметь самую последнюю версию.
Если я правильно понимаю, я смогу использовать для этого параметр flyway.baseline-version
. Моя теория состоит в том, что если Flyway не находит таблицу schema_version
, он должен создать ее и вставить запись о том, что БД имеет версию 3. Но даже если я установлю flyway.baseline-version=3
, Flyway все равно выполнит сценарии. Я также пытался установить параметр flyway.baseline-on-migrate=true
и их различные комбинации, но не смог заставить его работать.
Правильно ли я понимаю параметр baseline-version
или я что-то упустил?
Примечание: Мне известно, что после Spring Boot 2 пространство имен параметров изменилось на spring.flyway.*
, но я использую Spring Boot 1, так что это не проблема.