java 如何修复'验证失败:检测到迁移到版本1(基线)失败的“flyway”错误?

xxls0lw8  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(364)

我在为应用创建表时导入了数据集。但是,当我尝试启动服务器时以及在EAR部署期间,我遇到Flyway迁移错误。错误为:
Database migration failed.: org.flywaydb.core.api.FlywayException: Validate failed: Detected failed migration to version 1 (BASELINE)
我已经检查了dev.xml中的所有数据库信息都是正确的,并且检查了flyway_schema_history中的错误,但是没有错误。
我以前看到过一个通信链接错误,但现在已经消失了。有人能解释一下这个问题吗?因为我觉得没有任何脚本在运行,包括基线。
错误的堆栈跟踪:

2019-04-10 16:54:48,544 ERROR [com.cognitran.isis.model.migration.TopixFlywayIntegrator] (ServerService Thread Pool -- 2) Database migration failed.: org.flywaydb.core.api.FlywayException: Validate failed: Detected >failed migration to version 1 (BASELINE)```
    at org.flywaydb.core.Flyway.doValidate(Flyway.java:1375)
    at org.flywaydb.core.Flyway.access$100(Flyway.java:82)
    at org.flywaydb.core.Flyway$1.execute(Flyway.java:1257)
    at org.flywaydb.core.Flyway$1.execute(Flyway.java:1249)
    at org.flywaydb.core.Flyway.execute(Flyway.java:1604)
    at org.flywaydb.core.Flyway.migrate(Flyway.java:1249)
nhjlsmyf

nhjlsmyf1#

“数据库迁移失败。:org.flywaydb.core.api.FlywayException:验证失败:检测到迁移到版本1失败(基线)”
这意味着你之前运行了migrate,但由于某种原因,它在1处失败了。你需要确定为什么上一次迁移在1处失败,如果你还没有这样做,你需要解决它。一旦解决了,你需要运行flyway repair来告诉flyway,无论失败的是什么,都已经解决了。
根据您如何设置和运行flyway,有几个选项可以运行修复:

  • 如果这是基于maven的项目,在控制台运行mvn flyway:repair。如果使用intelliJ,则在maven插件maven -> <service name> -> plugins -> flyway -> flyway:repair中有此功能
  • 如果这是其他项目(例如,flyway安装了brew),则只需在控制台中运行flyway repair

如果再次失败,则返回步骤1。

相关问题