【问题标题】:Manually update schema_version table in Flyway在 Flyway 中手动更新 schema_version 表
【发布时间】:2018-11-23 17:48:33
【问题描述】:

我已经重命名了一些以前创建的迁移文件,并希望更新 Flyway 的 schema_version 表以包含已应用的迁移的新名称。

我尝试创建一个仅更新 schema_version 表中受影响行的迁移,但运行此迁移会导致迁移过程挂起,因为 schema_version 表已锁定。

有没有办法使用迁移更新 schema_version 表中的数据?

我正在使用 MySQL。

【问题讨论】:

    标签: mysql flyway


    【解决方案1】:

    没有。它总是被锁定。这是防止多个竞争节点并行迁移数据库的机制的一部分。

    【讨论】:

      【解决方案2】:

      您可以将所需的 SQL 放在 beforeValidate.sql 文件中:

      UPDATE schema_version
      SET script = 'new_name'
      WHERE script = 'old_name'
      

      有一个警告:当schema_version 表在干净的环境中尚不存在时,上述操作失败。这可以通过使用 Java FlywayCallbacks 来解决,您可以更好地控制错误处理。

      【讨论】:

        猜你喜欢
        • 2021-09-08
        • 2018-09-19
        • 1970-01-01
        • 2013-02-27
        • 2018-08-10
        • 2017-12-18
        • 2016-07-26
        • 2019-06-12
        • 2013-08-13
        相关资源
        最近更新 更多