diff --git a/db/增量SQL/版本升级说明.txt b/db/增量SQL/版本升级说明.txt
deleted file mode 100644
index 7a9543fe..00000000
--- a/db/增量SQL/版本升级说明.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-版本升级方法?
-
- JeecgBoot属于平台级产品,每次升级改动内容较多,目前做不到平滑升级。
-
- 升级方案建议:
- 1.代码升级 => 本地版本通过svn或者git做好主干,在分支上做业务开发,jeecg每次版本发布,可以手工覆盖主干的代码,对比合并代码;
- 2.数据库升级 => 针对数据库我们每次发布会提供增量升级SQL,可以通过执行增量SQL实现数据库的升级。
- 3.兼容问题 => 每次版本发布会针对不兼容地方标注说明,需要手工修改不兼容的代码。
-
- 注意: 升级sql目前只提供mysql版本,执行完脚步后,新菜单需要手工进行角色授权,刷新首页才会出现。
- 【20230820 放开了系统管理等模块权限注解,如果没权限请通过角色授权授权对应的按钮权限】
\ No newline at end of file
diff --git a/db/版本升级说明.md b/db/版本升级说明.md
new file mode 100644
index 00000000..516bf2b6
--- /dev/null
+++ b/db/版本升级说明.md
@@ -0,0 +1,15 @@
+# 版本升级方法
+
+> JeecgBoot属于平台级产品,每次升级改动较大,目前做不到平滑升级。
+
+### 增量升级方案
+#### 1.代码合并
+ 本地通过svn或git做好主干,在分支上做业务开发,jeecg每次版本发布,可以手工覆盖主干的代码,对比合并代码;
+
+#### 2.数据库升级
+- 从3.6.2+版本增加flyway自动升级数据库机制,支持 mysql5.7、mysql8;
+- 其他库请手工执行SQL, 目录: `jeecg-module-system\jeecg-system-start\flyway\sql\mysql`
+> 注意: 升级sql只提供mysql版本;如果有权限升级, 还需要手工角色授权,退出重新登录才好使。
+
+#### 3.兼容问题
+ 每次发版,会针对不兼容地方重点说明。
\ No newline at end of file
diff --git a/jeecg-module-system/jeecg-system-start/pom.xml b/jeecg-module-system/jeecg-system-start/pom.xml
index 0ee57e65..fc27d427 100644
--- a/jeecg-module-system/jeecg-system-start/pom.xml
+++ b/jeecg-module-system/jeecg-system-start/pom.xml
@@ -42,6 +42,13 @@
DmDialect-for-hibernate5.0
${dm8.version}
+
+
+
+ org.flywaydb
+ flyway-core
+ 7.15.0
+
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
index 0258ce93..afa6799a 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
@@ -20,6 +20,29 @@ management:
include: metrics,httptrace
spring:
+ # flyway配置
+ flyway:
+ # 是否启用flyway
+ enabled: true
+ # 编码格式,默认UTF-8
+ encoding: UTF-8
+ # 迁移sql脚本文件存放路径,官方默认db/migration
+ locations: classpath:flyway/sql/mysql
+ # 迁移sql脚本文件名称的前缀,默认V
+ sql-migration-prefix: V
+ # 迁移sql脚本文件名称的分隔符,默认2个下划线__
+ sql-migration-separator: __
+ # 避免带${}sql执行失败
+ placeholder-prefix: '#('
+ placeholder-suffix: )
+ # 迁移sql脚本文件名称的后缀
+ sql-migration-suffixes: .sql
+ # 迁移时是否进行校验,默认true
+ validate-on-migrate: true
+ # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
+ baseline-on-migrate: true
+ # 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
+ clean-disabled: true
servlet:
multipart:
max-file-size: 10MB
@@ -133,7 +156,7 @@ spring:
slow-sql-millis: 5000
datasource:
master:
- url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ url: jdbc:mysql://127.0.0.1:3306/jeecgos?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
@@ -244,6 +267,7 @@ cas:
#Mybatis输出sql日志
logging:
level:
+ org.flywaydb: debug
org.jeecg.modules.system.mapper: info
#swagger
knife4j:
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml
index 58790066..4f7595f6 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-prod.yml
@@ -20,6 +20,29 @@ management:
include: metrics,httptrace
spring:
+ # flyway配置
+ flyway:
+ # 是否启用flyway
+ enabled: false
+ # 编码格式,默认UTF-8
+ encoding: UTF-8
+ # 迁移sql脚本文件存放路径,官方默认db/migration
+ locations: classpath:flyway/sql/mysql
+ # 迁移sql脚本文件名称的前缀,默认V
+ sql-migration-prefix: V
+ # 迁移sql脚本文件名称的分隔符,默认2个下划线__
+ sql-migration-separator: __
+ # 避免带${}sql执行失败
+ placeholder-prefix: '#('
+ placeholder-suffix: )
+ # 迁移sql脚本文件名称的后缀
+ sql-migration-suffixes: .sql
+ # 迁移时是否进行校验,默认true
+ validate-on-migrate: true
+ # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
+ baseline-on-migrate: true
+ # 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
+ clean-disabled: true
servlet:
multipart:
max-file-size: 10MB
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml
index efddc8f5..530144bc 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml
@@ -20,6 +20,29 @@ management:
include: metrics,httptrace
spring:
+ # flyway配置
+ flyway:
+ # 是否启用flyway
+ enabled: true
+ # 编码格式,默认UTF-8
+ encoding: UTF-8
+ # 迁移sql脚本文件存放路径,官方默认db/migration
+ locations: classpath:flyway/sql/mysql
+ # 迁移sql脚本文件名称的前缀,默认V
+ sql-migration-prefix: V
+ # 迁移sql脚本文件名称的分隔符,默认2个下划线__
+ sql-migration-separator: __
+ # 避免带${}sql执行失败
+ placeholder-prefix: '#('
+ placeholder-suffix: )
+ # 迁移sql脚本文件名称的后缀
+ sql-migration-suffixes: .sql
+ # 迁移时是否进行校验,默认true
+ validate-on-migrate: true
+ # 当迁移发现数据库非空且存在没有元数据的表时,自动执行基准迁移,新建schema_version表
+ baseline-on-migrate: true
+ # 是否关闭要清除已有库下的表功能,生产环境必须为true,否则会删库,非常重要!!!
+ clean-disabled: true
servlet:
multipart:
max-file-size: 10MB
@@ -242,6 +265,7 @@ jeecg:
#Mybatis输出sql日志
logging:
level:
+ org.flywaydb: debug
org.jeecg.modules.system.mapper: info
#cas单点登录
cas:
diff --git a/db/增量SQL/3.6.1升级到3.6.2升级脚本.sql b/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.6.2__all_upgrade.sql
similarity index 96%
rename from db/增量SQL/3.6.1升级到3.6.2升级脚本.sql
rename to jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.6.2__all_upgrade.sql
index 93d9cc84..7b775e09 100644
--- a/db/增量SQL/3.6.1升级到3.6.2升级脚本.sql
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/flyway/sql/mysql/V3.6.2__all_upgrade.sql
@@ -1,12 +1,12 @@
ALTER TABLE onl_drag_page
-MODIFY COLUMN id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键' FIRST,
-MODIFY COLUMN low_app_id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID' AFTER update_time;
+ MODIFY COLUMN id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键' FIRST,
+ MODIFY COLUMN low_app_id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID' AFTER update_time;
ALTER TABLE onl_drag_page_comp
-MODIFY COLUMN page_Id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面ID' AFTER parent_id;
+ MODIFY COLUMN page_Id varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '界面ID' AFTER parent_id;
ALTER TABLE onl_drag_page
-ADD COLUMN visits_num int(11) NULL DEFAULT NULL COMMENT '访问次数' AFTER update_count;
+ ADD COLUMN visits_num int(11) NULL DEFAULT NULL COMMENT '访问次数' AFTER update_count;
UPDATE onl_drag_comp SET parent_id = '1537764868216684545', comp_name = '金字塔漏斗图', comp_type = 'JPyramidFunnel', icon = 'icon-park-outline:children-pyramid', order_num = 100, type_id = NULL, comp_config = '{\n \"dataType\": 1,\n \"url\": \"http://api.jeecg.com/mock/26/funnel\",\n \"timeOut\": 0,\n \"turnConfig\": {\n \"url\": \"\"\n },\n \"linkageConfig\": [],\n \"dataMapping\": [\n {\n \"filed\": \"维度\",\n \"mapping\": \"\"\n },\n {\n \"filed\": \"数值\",\n \"mapping\": \"\"\n }\n ],\n \"chartData\": [\n {\n \"value\": 1000,\n \"name\": \"直接访问\"\n },\n {\n \"value\": 200,\n \"name\": \"邮件营销\"\n },\n {\n \"value\": 400,\n \"name\": \"联盟广告\"\n },\n {\n \"value\": 600,\n \"name\": \"网页查询\"\n },\n {\n \"value\": 800,\n \"name\": \"广告点击\"\n }\n ],\n \"option\": {\n \"title\": {\n \"text\": \"基础漏斗图\",\n \"show\": true\n },\n \"grid\": {\n \"bottom\": 115\n },\n \"card\": {\n \"title\": \"\",\n \"extra\": \"\",\n \"rightHref\": \"\",\n \"size\": \"default\"\n },\n \"tooltip\": {\n \"trigger\": \"item\",\n \"formatter\": \"{a}
{b} : {c}\"\n },\n \"legend\": {\n \"orient\": \"horizontal\"\n },\n \"series\": [\n {\n \"name\": \"Funnel\",\n \"type\": \"funnel\",\n \"left\": \"10%\",\n \"width\": \"80%\",\n \"sort\": \"ascending\",\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": \"inside\"\n },\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": \"solid\"\n }\n },\n \"itemStyle\": {\n \"borderColor\": \"#fff\",\n \"borderWidth\": 1\n },\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20\n }\n }\n }\n ]\n }\n}', status = '1', create_by = NULL, create_time = '2022-06-16 14:17:31', update_by = NULL, update_time = '2022-06-16 14:59:44' WHERE id = '1537318433201340417';
UPDATE onl_drag_comp SET parent_id = '1537764868216684545', comp_name = '普通漏斗图', comp_type = 'JFunnel', icon = 'ant-design:funnel-plot-filled', order_num = 8, type_id = NULL, comp_config = '{\n \"dataType\": 1,\n \"url\": \"http://api.jeecg.com/mock/26/funnel\",\n \"timeOut\": 0,\n \"turnConfig\": {\n \"url\": \"\"\n },\n \"linkageConfig\": [],\n \"dataMapping\": [\n {\n \"filed\": \"维度\",\n \"mapping\": \"\"\n },\n {\n \"filed\": \"数值\",\n \"mapping\": \"\"\n }\n ],\n \"chartData\": [\n {\n \"value\": 335,\n \"name\": \"直接访问\"\n },\n {\n \"value\": 310,\n \"name\": \"邮件营销\"\n },\n {\n \"value\": 234,\n \"name\": \"联盟广告\"\n }\n ],\n \"option\": {\n \"title\": {\n \"text\": \"基础漏斗图\",\n \"show\": true\n },\n \"grid\": {\n \"bottom\": 115\n },\n \"card\": {\n \"title\": \"\",\n \"extra\": \"\",\n \"rightHref\": \"\",\n \"size\": \"default\"\n },\n \"tooltip\": {\n \"trigger\": \"item\",\n \"formatter\": \"{a}
{b} : {c}\"\n },\n \"legend\": {\n \"orient\": \"horizontal\"\n },\n \"series\": [\n {\n \"name\": \"Funnel\",\n \"type\": \"funnel\",\n \"left\": \"10%\",\n \"width\": \"80%\",\n \"sort\": \"descending\",\n \"gap\": 2,\n \"label\": {\n \"show\": true,\n \"position\": \"inside\"\n },\n \"labelLine\": {\n \"length\": 10,\n \"lineStyle\": {\n \"width\": 1,\n \"type\": \"solid\"\n }\n },\n \"itemStyle\": {\n \"borderColor\": \"#fff\",\n \"borderWidth\": 1\n },\n \"emphasis\": {\n \"label\": {\n \"fontSize\": 20\n }\n }\n }\n ]\n }\n}', status = '1', create_by = NULL, create_time = '2022-01-06 14:38:04', update_by = 'admin', update_time = '2022-06-17 19:51:26' WHERE id = '200208';