#spring-boot #flyway
Вопрос:
Я использую flyway-core 7.15.0 и spring-boot 2.4.11. Вот конфигурация взлетно-посадочной полосы в файле application.properties
spring.flyway.schemas=schema1,schema2
spring.flyway.table=schema_version
spring.flyway.out-of-order=true
spring.flyway.ignore-missing-migrations=true
кроме того, у меня есть этот боб
@Autowired
private ApplicationArguments appArgs;
@Bean
public FlywayMigrationStrategy cleanMigrateStrategy() {
return flyway -> {
if (appArgs.containsOption("flywayClean")) {
flyway.clean();
}
if (appArgs.containsOption("flywayRepair")) {
flyway.repair();
}
flyway.migrate();
};
}
Все работает нормально, но когда я добавил еще одну подобную схему и перезапустил приложение, эта новая схема не создается.
spring.flyway.schemas=schema1,schema2,schema3
Кто-нибудь знает, почему не добавляется схема 3, которая была добавлена после первого запуска?
Ответ №1:
В текущей версии — 7.x и бета — версии v8 — проверка создания схем выполняется только в «чистой» базе данных, то есть таблица истории схем не была создана, следовательно, если вы запустили последовательность миграций и изменили schemas
параметр, добавив дополнительный, он никогда не будет создан. (Строго говоря, только в том случае, если schemas
параметр не изменился таким образом, чтобы изменить подразумеваемое расположение таблицы истории!)
Я поставлю этот вопрос перед командой для рассмотрения. https://github.com/flyway/flyway/issues/3296
Комментарии:
1. Спасибо Джулии Хейворд за ваш ответ. Я буду следить за этим вопросом. В коде я обнаружил, что эта часть добавляется там, где она проверяет, не существует ли схема, которую затем создает, но кажется, что она добавлена по другой причине. github.com/flyway/flyway/blob/…