Flyway - 当架构的版本比最新的可用迁移更新时如何解决问题

Flyway - how to fix issue when schema has a version newer thatn latest available migration

我是 flyway 的新手,在调用 flyway migrate 时收到此警告:

WARNING: Schema 'schema' has a version (34) that is newer than the latest available migration (0) !

在一个有迁移的目录中,我有直到 36 的迁移,但是下一个迁移的 none 被应用到数据库。当我调用 flyway migrate 时,所有迁移的状态直到 34,都设置为 FUTURE。只漏了一个是29,请问是什么原因和解决方法(清库除外)?

我认为发生这种情况是因为我正在修复 29 并且我从 flyway 数据库中删除了这个迁移 table 并且还恢复了它对数据库的影响。是否有可能解决这个问题,这是什么意思?

免责声明

This is dangerous, but an option.

执行以下步骤。

  1. 备份您的架构。至少备份您的 schema_version table
  2. 删除 schema_version 中版本高于 29(或与版本 29 相比的最近迁移)的所有记录。请参阅您的迁移文件夹。
  3. 运行 flyway migrate,这将尝试重新创建迁移版本 29,但它可能会失败,因为 29 版本的内容已应用于数据库。如果失败,则更新此迁移记录以设置列 success=1。
  4. schema_version 的备份中复制数据以插入版本 29 以上的所有迁移记录。

希望这对您有所帮助。