0

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

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

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

我正在使用 MySQL。

4

2 回答 2

1

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

于 2013-07-15T16:03:54.300 回答
1

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

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

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

于 2018-11-23T09:48:33.707 回答