【问题标题】:Changing the baseline record for flyway更改飞行路线的基线记录
【发布时间】:2017-02-12 11:50:39
【问题描述】:

我有一个使用 flyway 运行迁移的数据库。它有一个有记录的schema_version 表:

'1', '1', '1', '<< Flyway Baseline >>', 'BASELINE', '<< Flyway Baseline >>', NULL, 'root', '2016-06-28 16:59:05', '0', '1'

现在我需要介绍一些比 1 更早的迁移,例如:0.0.1。这些迁移被忽略,因为基线是 1。我可以更改 schema_version 表中的基线记录吗?

注意:我使用 java api。

谢谢。

【问题讨论】:

    标签: java database flyway


    【解决方案1】:

    没有。

    这似乎是一个令人困惑的请求 - 您想要添加应该运行但也是预基线的迁移(这意味着它们不应该运行)。

    您需要做的是删除您的schema_version 并使用新的baselineVersion 再次运行baseline + migrate

    您可以手动调整 schema_version 中的基线条目,但我不建议这样做。

    【讨论】:

    • schema_version 版本表中的基线版本是旧的。这就是为什么我问我是否可以更改 schema_version 表中的记录。有没有办法从java api做到这一点,即没有手动更新记录或删除表?谢谢。
    • 正确。无法“重新设定”现有schema_version 表的基线(通过任何 Flyway API)。您必须自己进行一些手动补救程序,例如修改或删除 schema_version 表。
    【解决方案2】:

    我可以提供一些关于何时需要更改基线的用例:

    • 架构是从较旧的转储(不包含飞行路线信息)创建的,我们不知道确切的基线应该是什么。
    • 有人在不使用 flyway 的情况下应用了 (SQL) 迁移步骤,因此我们必须让 flyway 意识到这一点。

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 2012-09-02
      • 2011-05-24
      • 2015-06-22
      • 2016-03-13
      • 2016-09-19
      相关资源
      最近更新 更多