Flyway 3.0 到 4.0 升级失败(至少对于 Postgres)

Flyway 3.0 to 4.0 upgrade fails (at least for Postgres)

我们试图直接从 Flyway 3.0 升级到 4.0 以访问 Repeatable Migrations。 (因此跳过版本 3.1 和 3.2。)

SQL 运行 通过 MetaDataTableImpl.upgradeIfNecessary 删除了索引 schema_version_vr_idxschema_version_ir_idx,它们在 3.0 版的架构中不存在,因此 Postgres 是不开心。

支持多个版本升级的方法可以是使用DROP INDEX IF EXISTS schema_version_vr_idx;,当然需要不同的数据库采用

现在我通过在 运行ning Flyway 升级模式之前创建这两个索引解决了这个问题。

有更好的方法吗?

实际上这些索引确实默认存在:https://github.com/flyway/flyway/blob/flyway-3.0/flyway-core/src/main/resources/org/flywaydb/core/internal/dbsupport/postgresql/createMetaDataTable.sql

不知道为什么或如何在您的数据库实例上删除它们。