只需将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脚本来创建新架构。
应该够简单......
答案 0 :(得分:0)
始终运行所有脚本。