【发布时间】:2019-06-29 04:22:01
【问题描述】:
我研究了这个问题并发现了类似的问题,但没有一个问题的答案适合我。
在尝试运行 Spring 应用程序时,由于启动 ApplicationContext 出错而失败。
此错误是 FlywayException 的结果
这个问题似乎出现了,因为数据库已经有一个名为“schema_name”的模式,而当它发现这个非空模式时,flyway 不知道如何反应。该架构被产品代码中的更多包和类使用,没有飞路问题。
架构已经有一个以 Flyway Baseline 开头的 flyway_schema_history 表。
错误输出如下图:
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 文件 - 因为它们存在显然不能!
我的 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>
有没有人遇到过类似的问题?
更新
我尝试了第一个答案,其中我添加了 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!
【问题讨论】: