飞路错误 java.lang.IllegalArgumentException

Flyway error java.lang.IllegalArgumentException

尝试运行 Flyway,我收到以下错误

ERROR: java.lang.IllegalArgumentException: No enum constant org.flywaydb.core.api.MigrationType.DELETE

我的命令是

flyway -user=???? -password=???? -locations="filesystem:." -configFiles=flyway-control-uat.conf migrate

我尝试过使用“修复”和“迁移”,但结果相同

我的 flyway 版本是 Flyway Community Edition 6.5.5 by Redgate

谢谢

PS:到目前为止,我们一直在毫无问题地使用 flyway

我的工作站有 Flyway 社区版 v6.5。

我的一位同事已将他的版本更新到 v7.5 并在我们的数据库上执行了一些迁移。

我解决眼前问题的方法是从我们的数据库中卸载 flyway(而不是卸载软件本身)。 然后 运行 一个新的基线,这成功了。

但是,我在执行此操作之前对数据库进行了备份。 所以根据 Julia Hayward 的评论,我将自己的版本更新到 v7.5,问题消失了(从我制作的副本中)。

所以我的理解是,尝试用 v6.5“迁移”我的数据库,而其他人已经用 v7.5“迁移”了,再加上我们在脚本中所做的各种更改,最终导致了这种不愉快的情况.

因此,如果您遇到这种情况,请确保您使用的是同一版本。

正如 Eric Mament 提到的,当我尝试使用本地 Flyway 7 修复使用 Flyway 6 的数据库时,这发生在我身上。

我解决这个问题的方法是简单地从 flyway 模式历史记录 table 中删除与 Flyway 6 不向后兼容的行。

DELETE FROM flyway_schema_history where type = 'DELETE'

之后我 运行 验证了 flyway,使用本地版本 6 并且成功了

flyway validate