【问题标题】:Can I fix version numbers in Flyway without having migrations rerun?我可以在不重新运行迁移的情况下修复 Flyway 中的版本号吗?
【发布时间】:2020-04-16 20:17:53
【问题描述】:

我们设置了多个版本控制不正确的迁移。文件名将版本放在描述中,因此 db 始终为版本 0。我们想重命名它们,但这会导致所有脚本重新运行。

目前,我们的文件命名为V__001_The_First_Migration.sql

我们希望在不重新运行迁移的情况下将它们重命名为 V001__The_First_Migration.sql

有没有办法做到这一点?

【问题讨论】:

  • 只需为将来的迁移修复它,否则您将不得不手动干预任何现有数据库。
  • 有多少迁移脚本有错误的命名问题?太多?如果这些很少,我可以建议一种可能需要触发更新查询的解决方案。
  • @MehulGayate,不幸的是,它远远超过 100 个。有些脚本有 CREATE TABLE IF NOT EXISTS 这样的保护措施,但将所有这些都到位的努力会很昂贵。
  • 如果每个脚本的版本实际上都是 0,你是如何做到这一点的?

标签: java mysql database migration flyway


【解决方案1】:

我认为在 FlyWay 配置中,有一个属性会有所帮助:

flyway.baselineVersion=1.0

重命名所有文件或要重命名的文件,并将“baselineVersion”设置为上次运行或最新的脚本。

这里有更多: https://flywaydb.org/documentation/commandline/baseline

https://flywaydb.org/documentation/maven/baseline

如果您需要更多帮助或示例,请告诉我。

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 2016-09-12
    • 2017-08-05
    • 2016-06-05
    • 2018-01-22
    • 2020-05-13
    • 1970-01-01
    • 2020-02-23
    • 2018-07-29
    相关资源
    最近更新 更多