Я исследовал этот вопрос и нашел похожие вопросы, но ни один из них не имеет ответов, которые мне подходят.
При попытке запустить приложение Spring происходит сбой, поскольку возникает ошибка запуска ApplicationContext.
Эта ошибка является результатом исключения FlywayException
Кажется, проблема возникает, поскольку в БД уже есть схема с именем 'имя_схемы', и flyway не знает, как реагировать, когда находит эту непустую схему.Схема используется многими другими пакетами и классами в коде продукта без проблем с пролетом.
Схема уже имеет таблицу flyway_schema_history, которая начинается с базовой линии Flyway.
Выводится ошибканиже:
Invocation of init method failed; nested exception is org.flywaydb.core.api.FlywayException: Found non-empty schema `schema_name` without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.
Я попытался установить flyway.baselineOnMigrate = true, но это приводит к дальнейшей проблеме в том, что flyway пытается запустить файлы SQL, которые первоначально добавили таблицы DB - что, очевидно, не можетони существуют!
Мой файл application.properties содержит следующий код для источника данных:
spring.datasource.url=jdbc:mysql://localhost:3306/schema_name
spring.datasource.username=user
spring.datasource.password=pass
spring.jpa.hibernate.ddl-auto=update
Файл pom содержит это для зависимости от flyway, где flyway.version равен 5.0.7:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>${flyway.version}</version>
</dependency>
Кто-нибудь сталкивался с подобной проблемой?
UPDATE
Я попробовал первый ответ, в котором я добавил fly.baselineOnMigrate и убрал строку гибернации, но получил следующееошибка:
2019-02-06 10:07:32.233 INFO 82403 --- [ main] o.f.c.i.dbsupport.DbSupportFactory : Database: jdbc:mysql://localhost:3306/schema_name (MySQL 5.7)
2019-02-06 10:07:32.272 INFO 82403 --- [ main] o.f.core.internal.command.DbValidate : Validated 31 migrations (execution time 00:00.027s)
2019-02-06 10:07:32.318 INFO 82403 --- [ main] o.f.c.i.metadatatable.MetaDataTableImpl : Creating Metadata table: schema_name.schema_version
2019-02-06 10:07:32.379 INFO 82403 --- [ main] o.f.core.internal.command.DbBaseline : Schema baselined with version: 1
2019-02-06 10:07:32.395 INFO 82403 --- [ main] o.f.core.internal.command.DbMigrate : Current version of schema schema_name: 1
2019-02-06 10:07:32.395 INFO 82403 --- [ main] o.f.core.internal.command.DbMigrate : Migrating schema schema_name to version 2.0 - Creates TABLE_NAME tables
2019-02-06 10:07:32.407 WARN 82403 --- [ main] o.f.c.internal.dbsupport.JdbcTemplate : DB: Table 'TABLE_NAME' already exists (SQL State: 42S01 - Error Code: 1050)
2019-02-06 10:07:32.409 ERROR 82403 --- [ main] o.f.core.internal.command.DbMigrate : Migration of schema schema_name to version 2.0 failed! Please restore backups and roll back database and code!