Flyway管理数据库MySQL5.7入坑记录(一)
2022/8/29 2:52:48
本文主要是介绍Flyway管理数据库MySQL5.7入坑记录(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Flyway是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本,也可以写在Java代码中,不仅支持Command Line和Java API,还支持Build构建工具和Spring Boot等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。
下面主要记录Flyway作为Gradle插件使用时遇到的问题。
访问Flyway网站上的文档,找到首次使用Gradle插件的方式:https://flywaydb.org/documentation/getstarted/firststeps/gradle
buildscript { dependencies { classpath 'com.h2database:h2:1.4.197' } } plugins { id "org.flywaydb.flyway" version "9.2.0" } flyway { url = 'jdbc:h2:file:./target/foobar' user = 'sa' }
示例给出的是HSQL数据库的配置方式,于是将其它改为MySQL,我的build.gradle配置文件内容如下:
apply from: 'config.gradle' buildscript { ext { springBootVersion = '2.5.13' FAST_MIRROR_REPO_URL = 'https://maven.aliyun.com/nexus/content/groups/public/' } 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' } } plugins { id "org.flywaydb.flyway" version "9.2.0" } flyway { url = 'jdbc:mysql://localhost:3306/jeesite4?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai' user = 'root' password = 'root' locations = ['filesystem:db/migration'] }
第一坑:刷新Gradle出现错误:only buildscript {} and other plugins {} script blocks are allowed before plugins {} blocks...
Gradle长时间不用只记得简单的用法,这个错误没有遇到过,当前Gradle的版本是7.0,难道是升级带来的问题,不想降低版本解决这个问题,通过分析出错信息发现在plugins{}块之前,只允许buildscript{}和其他插件{}脚本块,不允许其他语句。又上网查了一下,知道build.grade的插件配置有两种形式plugins(id 'java')和apply plugin:'java',配置插件的时候用plugins{}的格式的时候,如果位置不对的话会报这个错误。plugins{}必须放在buildscript{}之后或者其他的plugins{}的后边,报这个错误是因为plugins{}的前面我多加了个语句 apply from: 'config.gradle',重新调整build.gradle脚本,具体内容如下:
buildscript { ext { springBootVersion = '2.5.13' FAST_MIRROR_REPO_URL = 'https://maven.aliyun.com/nexus/content/groups/public/' } 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' } } plugins { id "org.flywaydb.flyway" version "9.2.0" } flyway { url = 'jdbc:mysql://localhost:3306/jeesite4?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai' user = 'root' password = 'root' locations = ['filesystem:db/migration'] } apply from: 'config.gradle'
至此build.gradle脚本重新载入不再出错,可以正常使用了,在IDEA的Gradle的任务面板中还出现Flyway的任务列表,如下图所示:
这篇关于Flyway管理数据库MySQL5.7入坑记录(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程