验证失败:检测到应用的迁移未在本地解决 |飞行路线

问题描述 投票:0回答:5

在设置 Flyway 时,我在 Spring-Boot 应用程序中遇到此错误

org.springframework.beans.factory.BeanCreationException:创建类路径资源[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]中定义的名为“flywayInitializer”的bean时出错:调用init方法失败;嵌套异常是 org.flywaydb.core.api.FlywayException:验证失败:检测到应用的迁移未在本地解决:1.5.4

属性文件

spring.jpa.hibernate.ddl_auto=update
spring.jpa.hibernate.use-new-id-generator-mappings=false
spring.flyway.locations=classpath:db/migration,classpath:db/vendor/mysql
spring.flyway.baseline-on-migrate=true
spring.flyway.baseline-version=1.0.2
spring.flyway.table=schema_version
spring.flyway.enabled=true

上述配置在其他项目中运行良好。

我尝试在我的 pom.xml 中添加这个插件,但仍然不起作用

<plugin>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-maven-plugin</artifactId>
        <configuration>
            <argline>${argline} flyway:migrate -Dflyway.ignoreMissingMigrations=true</argline>
        </configuration>
</plugin>
database spring-boot migration database-migration flyway
5个回答
11
投票

您可以通过在本地数据库中执行此命令来解决您的问题。

delete from flyway_schema_history where version = '1.5.4'

6
投票

我在部署发布分支时遇到了这个问题,该分支从 master 中挑选了一些提交。

我已经通过添加属性解决了这个问题:

spring:
  flyway:
    ignore-missing-migrations: true

请参考https://flywaydb.org/documentation/configuration/parameters/ignoreMissingMigrationshttps://flywaydb.org/documentation/configuration/parameters/outOfOrder

您可以添加 outOfOrder 选项以在下一次cherry-pick(其中cherry pick较旧的提交)时迁移旧版本的sql脚本:

spring:
  flyway:
    ignore-missing-migrations: true
    out-of-order: true

3
投票

如果您使用配置文件,请尝试使用此:

flyway.outOfOrder=true
flyway.ignoreMissingMigrations=true

0
投票

可能是您错误地删除了项目中db/migration中的V_sql文件,它与flyway_scheme_history中的校验和不匹配。对我来说,我会从数据库中删除该行


0
投票

目前从 Flyway v9.0 开始,上述选项 (ignore-missing-migrations: true) 已被弃用,并引入了选项ignore-migration-patterns: '*:missing'

请参阅 https://documentation.red-gate.com/flyway/flyway-cli-and-api/configuration/parameters/flyway/ignore-migration-patterns了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.