将 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.flywayorg.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的主要内容,如果未能解决你的问题,请参考以下文章

zabbix2.4版本升级到3.2版本

Flyway - JDBC 查询

如何升级php版本---从php5.5.12 升级php7.1.5 wamp实践

Flyway详解以及Springboot集成Flyway, 数据库脚本版本管理

Flyway详解以及Springboot集成Flyway(转)

如何升级php版本