将 flyway 版本 1.5 升级到 3.2
Posted
技术标签:
【中文标题】将 flyway 版本 1.5 升级到 3.2【英文标题】:Upgrade flyway version 1.5 to 3.2 【发布时间】:2016-05-24 20:49:41 【问题描述】:我一直在寻找从 flyway 版本 1.x 到 3.x 的迁移方法
(即com.googlecode.flyway
到org.flywaydb
)到处都提到要首先迁移到2.3 版,但没有提到如何迁移?有没有直接的方法可以做到这一点,还是我必须从后端做一些事情。
我的数据库已经有数据,我无法删除数据库。
注意:Flyway 1.X 到 2.X 对表 schema_version
进行了重大更改。
编辑
我已将 flyway 的 maven 依赖项从 1.5 升级到 3.1。它现在说 schema_version 没有某些列由 flyway 本身制作以供自己参考。我浏览了文档和整个 ***,发现 flyway 3.1 和 1.5 不兼容。在 SO 和文档中提到,我们需要先升级到 2.3,然后再升级到 3.1。但没有提到如何。因为仅仅通过添加pom依赖,似乎并不能解决schema_version问题。
我还尝试将 2.3 添加到 pom 并启动基于 spring 的应用程序,但 Flyway 仍然无法抛出堆栈跟踪,说它找不到某些列。
确切的错误是flyway 1.5本身制作的schema_version表的'where子句'中的未知列'success'。
请建议如何解决这个问题?
【问题讨论】:
【参考方案1】:你可以在Release Notes看到:
放弃了与 Flyway 1.X 元数据表格式的兼容性。如果您从 1.X 升级,则必须先升级到 2.3,然后再升级到 3.0。
您必须升级到 2.3 版。正如您在Release Notes 中看到的那样:
Flyway 2.1 (2013-03-05)
此版本修复了元数据表的小问题。迁移在首次运行时是透明且自动的。 [...]
Flyway 2.0.2 (2012-11-22)
此版本对元数据表进行了小幅修复。迁移在首次运行时是透明且自动的。 [...]
Flyway 2.0 (2012-11-14)
此版本带有新的元数据表格式。迁移在首次运行时是透明且自动的。
Flyway 会自行升级其架构。
另见:
MetaDataTableTo20FormatUpgrader.java MetaDataTableTo202FormatUpgrader.java MetaDataTableTo21FormatUpgrader.java【讨论】:
以上是关于将 flyway 版本 1.5 升级到 3.2的主要内容,如果未能解决你的问题,请参考以下文章
如何升级php版本---从php5.5.12 升级php7.1.5 wamp实践
Flyway详解以及Springboot集成Flyway, 数据库脚本版本管理