如何处理与Flyway

时间:2016-12-21 08:10:28

标签: flyway git-flow

我刚刚遇到以下情况:

测试服务器当前正在运行Flyway,版本为1(V1)。只要在develop分支上推送任何内容,测试服务器就会自动更新(包括Flyway脚本)。

开发人员决定开始处理分支feature/123上的新功能。该开发人员创建了一个名为V2__cool_feature.sql的数据库脚本(兼容Flyway)。与此同时,另一位开发人员也开始处理名为feature/456的功能分支。此开发人员还需要更新脚本,并将其命名为V3__another_cool_feature.sql,因为开发人员知道V2已在另一个分支上使用。此feature/456分支已完成并已合并,因此开发分支上的当前脚本为V1& V3。这很好用,并且V3脚本被执行,使Flyway在版本3上保留schema_version

另一个功能分支feature/123也已合并,这意味着开发分支包含脚本V1V2& V3

现在这是因为我遇到了Flyway问题:

执行包括Flyway在内的构建,它会留下以下消息:

[INFO] Database: jdbc:mysql://example.com:3306/my_schema (MySQL 5.5)
[INFO] Successfully validated 2 migrations (execution time 00:00.019s)
[INFO] Current version of schema `my_schema`: 3
[INFO] Schema `my_schema` is up to date. No migration necessary.

我想要发生的是V2脚本已执行,我不知道该怎么做。

我希望我能很好地解释我的问题,如果没有,请发表评论。

1 个答案:

答案 0 :(得分:0)

呃,我不是一个聪明人。在我的Google搜索技巧上投入更多精力让我看到Flyway文档,描述完全我的问题:

选项: outOfOrder

必需: NO

默认: 假

描述: 允许迁移运行"无序"。 如果您已经应用了版本1和版本3,现在找到版本2,则它也将被应用而不是被忽略。 (即使使用与我的问题相同的版本控制>。<)