Flyway不会忽略无序迁移脚本,outOfOrder = false

时间:2017-12-19 16:03:25

标签: validation flyway

我没有使用outOfOrder。 我希望能够添加一个不是最新版本的迁移脚本(例如,修改现有脚本,而不更改该脚本)。

我希望在尚未迁移的数据库上运行新脚本,作为正常排序的一部分。 任何最新的数据库(例如手动修复)都应忽略新脚本。

来自文档:

  

OutOfOrder - 允许运行迁移"无序"。如果你   已经应用了版本1和3,现在找到版本2,   它也将被应用而不是被忽略。

这表明新脚本将被忽略,但我收到错误:

  

错误:验证失败:检测到已解决的迁移未应用于数据库

如果数据库基线超前,是否只会忽略新脚本? 这是预期的行为吗?

如果是这样,我想我的解决方案是:

  • 使用outOfOrder,并使我的所有脚本复杂化为幂等。
  • 每次迁移后基准我的数据库。

1 个答案:

答案 0 :(得分:1)

有一个拉动请求,将及时合并为Flyway 5.1.0:https://github.com/flyway/flyway/pull/1866

在此之前,您还可以选择通过将validateOnMigrate设置为false来停用验证。