【发布时间】:2021-01-18 05:59:44
【问题描述】:
我正在尝试升级我的 Spring Boot 2.3.4 应用以使用 Flyway 7.0.0(最新版本)。以前它使用的是 Flyway 6.5.6。 build.gradle中的相关条目如下所示。
buildscript {
ext {
flywayVersion = "7.0.0" // changed from 6.5.6
}
}
plugins {
id "org.flywaydb.flyway" version "${flywayVersion}"
}
dependencies {
implementation "org.flywaydb:flyway-core:${flywayVersion}"
}
flyway {
url = "jdbc:postgresql://0.0.0.0:5432/postgres"
user = "postgres"
password = "secret"
}
当我启动应用程序时出现以下错误,例如./gradlew bootRun
应用程序启动失败
说明:
试图调用一个不存在的方法。尝试 是从以下位置制作的:
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:65)以下方法不存在:
'int org.flywaydb.core.Flyway.migrate()'该方法的类 org.flywaydb.core.Flyway 可从 以下地点:
jar:file:/Users/antonio/.gradle/caches/modules-2/files-2.1/org.flywaydb/flyway-core/7.0.0/623494c303c62080ca1bc5886098ee65d1a5528a/flyway-core-7.0.0.jar!/org/flywaydb/core/Flyway.class类层次结构是从以下位置加载的:
org.flywaydb.core.Flyway: file:/Users/antonio/.gradle/caches/modules-2/files-2.1/org.flywaydb/flyway-core/7.0.0/623494c303c62080ca1bc5886098ee65d1a5528a/flyway-core-7.0.0.jar行动:
更正应用程序的类路径,使其包含 org.flywaydb.core.Flyway 的单一兼容版本
【问题讨论】:
-
请提供github代码库来检查问题。
-
@AnishB。 github.com/flyway/flyway
-
可以通过github提供你的项目吗?
-
@AnishB。我不能
-
在 Flyway 7 中,我们对 api 进行了重大更改,其中之一是更改 migrate() 以返回有关已迁移内容的信息,而不仅仅是一个 int。因此,在发布针对此新版本编译的新版本 springboot 之前,它不会与 spring boot 兼容。我建议在 spring boot github github.com/spring-projects/spring-boot/issues 上提出问题
标签: java spring-boot flyway