编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

JeecgBoot集成Flyway,版本化管理数据库

wxchong 2024-06-19 22:26:32 开源技术 20 ℃ 0 评论

JeecgBoot低代码开发框架,后台服务使用SpringBoot开发,支持MySQL、Oracle、PostgreSQL,SQLServer多种数据库,集成Flyway版本化管理SQL脚本。


代码托管:GitHub和Gitee,国内用户访问Gitee速度快。

系统环境:Win10,JDK8,maven,docker。


一,SpringBoot集成Flyway

1,pom.xml中添加依赖


2,application.yml中添加配置


3,添加初始化SQL脚本

创建数据表,导入初始化数据。


二,功能测试

Flyway管理维护Migration,SQL脚本在服务启动时自动运行。

为了方便测试,使用docker-compose,快速启动。

1,配置JeecgBoot后端服务

修改配置文件application.yml,在MySQL和redis连接中引用hostname


2,编译打包

运行命令mvn package,也可以使用IntelliJ IDEA,得到target目录下的jar包文件。


3,生成Docker镜像

运行docker-compose build


4,启动Docker容器

运行docker-compose up



5,访问后台服务


三,常见问题

1,异常ClassNotFoundException,找不到FlywayCallback类

原因:flyway版本不匹配。

解决方法:在pom.xml中添加flyway-core依赖时,不要指定版本,SpringBoot将自动匹配管理。

2,运行SQL脚本错误FlywayException: No value provided for placeholder expressions

原因:Flyway默认会解析SQL脚本中的变量,如果没有设置参数值,将出错。

解决方法:配置flyway不替换变量值。

spring.flyway.placeholder-replacement=false

3,创建flyway_schema_history数据表失败

原因:如果配置了Ali Druid Wall安全过滤器,将禁止SQL语句中包含注释。Flyway在创建migration历史记录表时的SQL语句包含注释。

解决方法:配置WallFilter允许SQL注释。

commentAllow=true


#低代码开发框架#

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表