From 62549e0a1c1e1df66c9e83191e4643b4c3caa007 Mon Sep 17 00:00:00 2001
From: JEECG <445654970@qq.com>
Date: Tue, 25 Nov 2025 17:11:28 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=BC=80flyway=20=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E5=BA=93=E8=87=AA=E5=8A=A8=E5=8D=87=E7=BA=A7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../jeecg-system-start/pom.xml | 4 +-
.../org/jeecg/config/flyway/FlywayConfig.java | 89 ++++++++++---------
2 files changed, 48 insertions(+), 45 deletions(-)
diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/pom.xml b/jeecg-boot/jeecg-module-system/jeecg-system-start/pom.xml
index 06e75b927..b4e44bb51 100644
--- a/jeecg-boot/jeecg-module-system/jeecg-system-start/pom.xml
+++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/pom.xml
@@ -25,12 +25,12 @@
${jeecgboot.version}
-
org.flywaydb
flyway-core
7.15.0
- -->
+
org.springframework.boot
diff --git a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/config/flyway/FlywayConfig.java b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/config/flyway/FlywayConfig.java
index 129f1632a..6b9193d90 100644
--- a/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/config/flyway/FlywayConfig.java
+++ b/jeecg-boot/jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/config/flyway/FlywayConfig.java
@@ -1,7 +1,10 @@
package org.jeecg.config.flyway;
import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
+import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
+import org.flywaydb.core.Flyway;
+import org.flywaydb.core.api.FlywayException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -13,11 +16,11 @@ import javax.sql.DataSource;
import java.util.Map;
/**
-* @Description: 初始化flyway配置 修改之后支持多数据源,当出现异常时打印日志,不影响项目启动
-*
-* @author: wangshuai
-* @date: 2024/3/12 10:03
-*/
+ * @Description: 初始化flyway配置 修改之后支持多数据源,当出现异常时打印日志,不影响项目启动
+ *
+ * @author: wangshuai
+ * @date: 2024/3/12 10:03
+ */
@Slf4j
@Configuration
public class FlywayConfig {
@@ -93,42 +96,42 @@ public class FlywayConfig {
*/
@Value("${spring.flyway.clean-disabled:true}")
private Boolean cleanDisabled;
-
-// @Bean
-// public void migrate() {
-// if(!enabled){
-// return;
-// }
-//
-// DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
-// Map dataSources = ds.getDataSources();
-// dataSources.forEach((k, v) -> {
-// if("master".equals(k)){
-// String databaseType = environment.getProperty("spring.datasource.dynamic.datasource." + k + ".url");
-// if (databaseType != null && databaseType.contains("mysql")) {
-// try {
-// Flyway flyway = Flyway.configure()
-// .dataSource(v)
-// .locations(locations)
-// .encoding(encoding)
-// .sqlMigrationPrefix(sqlMigrationPrefix)
-// .sqlMigrationSeparator(sqlMigrationSeparator)
-// .placeholderPrefix(placeholderPrefix)
-// .placeholderSuffix(placeholderSuffix)
-// .sqlMigrationSuffixes(sqlMigrationSuffixes)
-// .validateOnMigrate(validateOnMigrate)
-// .baselineOnMigrate(baselineOnMigrate)
-// .cleanDisabled(cleanDisabled)
-// .load();
-// flyway.migrate();
-// log.info("【升级提示】平台集成了MySQL库的Flyway,数据库版本自动升级! ");
-// } catch (FlywayException e) {
-// log.error("【升级提示】flyway执行sql脚本失败", e);
-// }
-// } else {
-// log.warn("【升级提示】平台只集成了MySQL库的Flyway,实现了数据库版本自动升级! 其他类型的数据库,您可以考虑手工升级~");
-// }
-// }
-// });
-// }
+
+ @PostConstruct
+ public void migrate() {
+ if(!enabled){
+ return;
+ }
+
+ DynamicRoutingDataSource ds = (DynamicRoutingDataSource) dataSource;
+ Map dataSources = ds.getDataSources();
+ dataSources.forEach((k, v) -> {
+ if("master".equals(k)){
+ String databaseType = environment.getProperty("spring.datasource.dynamic.datasource." + k + ".url");
+ if (databaseType != null && databaseType.contains("mysql")) {
+ try {
+ Flyway flyway = Flyway.configure()
+ .dataSource(v)
+ .locations(locations)
+ .encoding(encoding)
+ .sqlMigrationPrefix(sqlMigrationPrefix)
+ .sqlMigrationSeparator(sqlMigrationSeparator)
+ .placeholderPrefix(placeholderPrefix)
+ .placeholderSuffix(placeholderSuffix)
+ .sqlMigrationSuffixes(sqlMigrationSuffixes)
+ .validateOnMigrate(validateOnMigrate)
+ .baselineOnMigrate(baselineOnMigrate)
+ .cleanDisabled(cleanDisabled)
+ .load();
+ flyway.migrate();
+ log.info("【数据库升级】平台集成了MySQL库的Flyway,数据库版本自动升级! ");
+ } catch (FlywayException e) {
+ log.error("【数据库升级】flyway执行sql脚本失败", e);
+ }
+ } else {
+ log.warn("【数据库升级】平台只集成了MySQL库的Flyway,实现了数据库版本自动升级! 其他类型的数据库,您可以考虑手工升级~");
+ }
+ }
+ });
+ }
}
\ No newline at end of file