当前位置: 首页 > 知识库问答 >
问题:

重试flyway失败的迁移

孙绍辉
2023-03-14

我刚刚在配置和充分理解flyway的过程中遇到了这样的情况:

  • 我已成功配置新项目以使用Flyway。
  • 我已成功将测试数据库从版本0迁移到1.0.3。
  • 无法执行到版本1.0.4的迁移。(我试图添加已经存在的列,到目前为止没有问题,是我的错。)

但是,一旦我对相应的脚本进行了必要的更改以使其工作,flyway就会不断显示这样的消息:

 Current schema version: 1.0.4
 com.googlecode.flyway.core.migration.MigrationException: Migration to version 1.0.4 failed! Please restore backups and roll back database and code!

由于我不想恢复一个完整的转储并再次应用每一次迁移,只是为了使alter table脚本正常工作,所以我最后做的是对'schema_version'表进行一些更改:

  • 第一次我删除了版本1.0.4的条目
  • 第二次我将版本1.0.3的“current_version”字段设置为1
  • 然后再次执行flyway:migrate命令

在此之后,迁移最终被应用,并且显示了成功消息,但是我不太确定这是否是处理这种情况的正确方法。我不确定自己修改'schema_version'表是否正确,因为我认为它只应该由flyway自己修改。

所以,在解释了发生在我身上的事情之后,我的问题是:

有没有一种方法可以‘重试’在flyway中应用失败的迁移,而不用自己修改'schema_version'表?

有什么我不知道的命令来完成这个任务吗?

共有1个答案

胡光霁
2023-03-14

常见问题解答:http://flywaydb.org/documentation/faq.html#repair

即将发布的Flyway 2.0将包含修复命令。此代码已签入SCM。

注意:这只处理Flyway的元数据表。您仍然负责清理失败迁移的任何其他影响。

更新:Flyway 2.0现已发布。您可以在http://flywaydb.org上获取

 类似资料:
  • 我已成功地将spring boot配置为使用Flyway的新项目 随Postgres数据库从版本0001.0迁移到0008.0 我已在本地手动更改脚本,但flyway迁移失败。 错误消息示例: 注意:-我不想从表flyway_schema_history中删除脚本条目。

  • 我有一个飞行路线例外: 我在文档和论坛上查找,但没有找到这个异常的含义。请有人告诉我这些异常的原因是什么!谢谢

  • 我正在更新我们应用程序中落后的一些maven依赖项,从flyway maven插件4.2.0升级时遇到了一个问题,我们的reset和migrate make命令失败了,我找不到任何有用的结果。 最初,我试图从4.2.0转移到5.2.4。当我无法解决我的错误时,我退回到5.0.0的单个版本。在5.0.0的发行说明之后,我将添加到我的flyway-$env.properties文件中,并更新了我的Ma

  • 我希望能够在部署失败后部署到我的数据库,因为在我的情况下,我正在处理并发和独立的部署。flyway clean命令有助于删除迁移表中失败的迁移。使用该命令有助于我将来执行部署,但缺点是我会丢失失败部署的历史记录。 有没有办法告诉flyway修复迁移表并保留失败部署的历史记录-例如将成功标志设为“2”。 在我的情况下,所有部署都是独立的,所以我们在部署时创建唯一的迁移号-这允许我们重新部署任何东西,

  • 我有以下错误。有人在理解为什么? PHP工匠迁移 创建_users_table.php

  • 出身背景 我正在使用命令行界面对DB2运行flyway迁移。我做了很多测试,一切都很好。我添加了一些命令以导致失败。 问题 有人能确认如果迁移失败并且数据库支持DDL,是否应该回滚更改表、删除表或创建表吗?当我测试它时,它看起来像是在同一个flyway脚本中失败后没有回滚更改表添加列语句。