flyway 异常,检测到迁移失败

Posted

技术标签:

【中文标题】flyway 异常,检测到迁移失败【英文标题】:flyway exception, detected failed migration 【发布时间】:2017-12-11 18:13:38 【问题描述】:

我有一个 Flyway 异常:

FlywayException: Detected failed migration to version 1.0

我在文档和论坛上进行了查找,但没有找到此异常的含义。 请有人可以告诉我这些异常的原因是什么! 谢谢

【问题讨论】:

看看这个修复***.com/questions/44681583/… 【参考方案1】:

“FlywayException:检测到迁移到版本 1.0 失败”

这意味着您之前运行过 migrate 并且由于某种原因它在 1.0 失败。您需要确定上一次迁移在 1.0 中失败的原因,如果您还没有这样做,请解决它。 解决后,您需要运行 flyway repair 来告诉 flyway 无论失败的事情现在都已经过去了。

然后再次运行flyway migrate。如果再次失败,您将返回第 1 步。 祝迁移顺利。

【讨论】:

感谢您的回答...我终于在我的代码中发现了一个基本的 sql 错误...我按照您所说的再次运行了 flyway...并且它有效:) 拯救了我的一天! “flyway repair”,我的理解是它从模式历史表中删除了“失败”。然而,部分失败的迁移可能已经运行。我必须找到错误行,注释掉上面的所有行,因为它们已经完成,然后再次运行“flyway migrate”,效果很好。 飞路修复如何进行? mvn flyway:repair 在控制台中应该可以。如果使用 intelliJ,你在 maven 插件中有这个 maven -> <service name> -> plugins -> flyway -> flyway:repair【参考方案2】:

制作

select * from your_database_name.flyway_schema_history

你会得到这样的东西:

查询 flyway_schema_history 表

然后找到与失败的迁移对应的条目并将其删除,它应该可以工作。

【讨论】:

请注意,根据配置,此表可能有不同的名称

以上是关于flyway 异常,检测到迁移失败的主要内容,如果未能解决你的问题,请参考以下文章

重试flyway失败的迁移

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

检测到的已解决迁移未应用于 flyway 上的数据库

将环境变量传递给 Docker 时,Flyway 迁移失败

flyway:即使 SQL 语句失败也强制迁移

Flyway 升级 4.2.0 -> 5.0.0 迁移失败,即使指定了 flyway.table