使用Flyway时的升级方案

时间:2014-03-20 20:53:40

标签: flyway

只需将Flyway集成到我们的应用程序中,它在以下情况下效果很好:

  • 使用空架构进行全新的应用安装,创建schema_version表并执行完整的架构脚本,之后应用就可以了。工作很棒!

  • 有一个补丁sql脚本,我们设置的版本高于当前版本,补丁得到自动应用,版本递增,这里没有问题!

现在问题如下: 我们有旧版本的应用程序。假设我们当前的应用程序版本是7.5(架构版本1.0),当用户使用7.4的应用程序时(我们将手动将架构版本设置为0.9)并升级到7.5,应使用以下方式迁移架构升级到v 1.0升级脚本而不是空数据库的完整脚本。合理?我如何处理这种情况,它似乎没有被Flyway覆盖。

总之,我们有以下两种情况:

全新安装的app v7.5: - 安装新模式v1.0使用MX_1_0__complete.sql

将应用从v7.4升级到v7.5: - 将模式从v0.9升级到v1.0应使用MX_1_0__74upgrade.sql

由于两个目标模式版本都是1.0,因此Flyway如何选择其中一个?另外,根据现有版本#,只执行升级或完整脚本,而不是两者!如果当前版本为0.9,则选择升级脚本,如果当前版本为1.0,则不执行任何操作,如果没有当前版本,则应用完整的1.0脚本来创建新架构。

应该够简单......

1 个答案:

答案 0 :(得分:0)

始终运行所有脚本。

  • 全新安装的v7.4:运行0.9脚本。
  • 全新安装的v7.5:运行0.9脚本和1.0升级。
  • 将v7.4升级到v7.5 ...:运行1.0升级。