Flyway管理数据库MySQL5.7入坑记录(三)

真是不用不知道,问题真不少,经过反复尝试,上网查询终于Flyway的Gradle插件终于可以工作了,但是错误又再一次出现了。

第三坑,执行flywayMigrate提示信息:Flyway Teams Edition or MySQL upgrade required: MySQL 5.7 is no longer supported by Flyway Community Edition, but still supported by Flyway Teams Edition.

这个信息已经很明白的说明了,现有使用的Flyway开源版本不支持5.7了,如果还想要使用请使用收费的版本。我心中一万个FFFFFFFFF。

至此看来只能是升级MySQL到8.0了,而我机器的MySQL暂时还无法升级,这样看来Flyway是不能用了,花了这么长时间没法用,实在不甘心,于是再次上网查了一下,发现了下面的网文给了我启发

https://blog.csdn.net/Alex_81D/article/details/122713943 运行flyway报错, MySQL 5.6 is no longer supported by Flyway Community Edition,问题处理

该文中提到的版本是5.6,解决的方法有两种,一是升级MySQL 5.7;另一种是降低Flyway的版本。这给了我启发,我也可以降低Flyway版本,早期的Flyway版本肯定可以使用MySQL 5.7。经过一番测试后发现Flyway从8.0开始不再支持MySQL 5.7,因此它的7.x版本是可以支持MySQL 5.7的,于是找到Flyway 7.x的最后版本7.15.0。具体配置如下所示。

buildscript {
    ext {
        springBootVersion = '2.5.13'
        FAST_MIRROR_REPO_URL = 'https://maven.aliyun.com/nexus/content/groups/public/'
        FLYWAY_VERSION = '7.15.0'
    }
    repositories {
        maven { url FAST_MIRROR_REPO_URL }
        mavenCentral()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
        classpath 'mysql:mysql-connector-java:8.0.29'
        classpath "org.flywaydb:flyway-core:${FLYWAY_VERSION}"
    }
}

plugins {
    id "org.flywaydb.flyway" version "${FLYWAY_VERSION}"
}

flyway {
    url = 'jdbc:mysql://localhost:3306/jeesite4?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai'
    user = 'root'
    password = 'root'
    locations = ['filesystem:db/migration']
}

需要注意的是在buildscript中的对Flyway的依赖包制品名称与高版本的也不相同。配置中黑体字的内容

classpath "org.flywaydb:flyway-core:${FLYWAY_VERSION}"

通过查看Flyway全部的下载包(https://repo1.maven.org/maven2/org/flywaydb/)发现,Flyway是从8.2.1开始将MySQL的处理机制单独分离为一个jar文件,因此8.2.1版本以上使用如下依赖配置,但是不支持MySQL 5.7,只能升级MySQL了。

classpath "org.flywaydb:flyway-mysql:9.2.0"

至此,Flyway在Gradle的插件终于能正常使用了。

期间用到的Flyway网文参考:

https://blog.csdn.net/u014091123/article/details/78133522  快速掌握和使用Flyway

https://zhuanlan.zhihu.com/p/501208093  于Flyway的数据库版本控制实战

https://blog.csdn.net/weixin_42139800/article/details/121949402  从零搭建flyway+Gradle+Spring Boot,快速上手开发

https://github.com/songlijun2019/spring-play/tree/main/spring-play-gradle

https://blog.csdn.net/buertianci/article/details/124846999 数据库版本管理框架-Flyway

https://flywaydb.org/documentation/learnmore/releaseNotes Flyway的各版本发布说明

posted @ 2022-08-28 23:12  培轩  阅读(4238)  评论(0编辑  收藏  举报