使用 mvn flyway:migrate 的 Flyway 迁移给出“迁移 1.0.53 不匹配”错误

Posted

技术标签:

【中文标题】使用 mvn flyway:migrate 的 Flyway 迁移给出“迁移 1.0.53 不匹配”错误【英文标题】:Flyway Migration with mvn flyway:migrate is giving "Mismatch for migration 1.0.53" error 【发布时间】:2021-11-20 09:49:24 【问题描述】:

我在 flyway 的 CMD 中运行 mvn flyway:migrate 命令,但是脚本文件的迁移给出了以下异常

[错误] 无法执行目标 org.flywaydb:flyway-maven-plugin:3.2.1:migrate (default-cli) on project convertopia-auto-db: org.flywaydb.core.api.FlywayException: Validate failed .迁移 1.0.53 的迁移描述不匹配 [错误] -> 应用于数据库:从可为空的更新规则类型列有效 [错误] -> 本地解决:更新规则类型列从可为空有效 - 复制 - 复制 [错误] -> [帮助 1] [错误] [错误] 要查看错误的完整堆栈跟踪,请使用 -e 开关重新运行 Maven。 [错误] 使用 -X 开关重新运行 Maven 以启用完整的调试日志记录。 [错误] [错误] 有关错误和可能的解决方案的更多信息,请阅读以下文章: [错误] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

我试过mvn flyway:repair,它说构建成功,但问题仍然没有解决。实际上我已经在脚本文件夹中添加了更多文件,我想迁移它们。当我尝试mvn flyway:info 时,它返回给我:

如您所见,最后两个(突出显示的)文件未迁移

另外,请告诉我如何在windows中创建扩展名为“.sql”的“SQL文本文件”?

【问题讨论】:

【参考方案1】:

通过删除 update rule type column valid from nullable - Copy - Copy 文件自己解决了这个问题,该文件我的目录中不存在。我知道这个文件夹导致了这个问题,所以我必须删除它,但它不在我的目录中。所以,我去 source Tree 并奇怪地在那里找到了那个文件夹。

从源代码树中删除这个重复的文件夹解决了我的问题...

之后,mvn flyway:repair 更新了我的文件,迁移成功。

【讨论】:

以上是关于使用 mvn flyway:migrate 的 Flyway 迁移给出“迁移 1.0.53 不匹配”错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在flyway migrate上回调?

Flyway 迁移更新架构

Flyway 不会将值插入数据库

Spring boot Flyway Jooq Code gen maven 插件顺序

SpringBoot配置文件属性值

如何使用 mvn -f 打包 pom.xml 在文件夹树中存在两个文件夹?