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

时间:2019-10-31 09:14:04

标签: database spring-boot migration database-migration 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>

2 个答案:

答案 0 :(得分:5)

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

delete from flyway_schema_history where version = '1.5.4'

答案 1 :(得分:1)

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

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

spring:
  flyway:
    ignore-missing-migrations: true

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

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

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