【问题标题】:Flyway - how to fix issue when schema has a version newer thatn latest available migrationFlyway - 当架构的版本比最新的可用迁移更新时如何解决问题
【发布时间】:2019-02-14 21:46:55
【问题描述】:

我是 flyway 新手,在致电 flyway migrate 时收到此警告:

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

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

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

【问题讨论】:

    标签: flyway


    【解决方案1】:

    免责声明

    这很危险,但也是一种选择。

    执行以下步骤。

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

    希望这会有所帮助。

    【讨论】:

    • 我在最后的方法中做了类似的事情,你的回答是正确的
    • 新迁移会发生什么,因为迁移 30、31、32、33、34 已经执行。如果这些将再次开始执行,则 flyway 将抛出更改已在数据库/表中的错误。
    猜你喜欢
    • 2016-03-17
    • 2017-10-08
    • 1970-01-01
    • 2018-10-20
    • 2018-09-19
    • 1970-01-01
    • 2019-01-16
    • 1970-01-01
    • 2020-03-23
    相关资源
    最近更新 更多