diff --git a/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java b/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java index 6c200ef..75a106e 100644 --- a/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java +++ b/src/main/java/im/zhaojun/zfile/common/config/FlywayDbInitializer.java @@ -1 +1 @@ -package im.zhaojun.zfile.common.config; import cn.hutool.core.util.StrUtil; import org.flywaydb.core.Flyway; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.SQLException; import java.util.Locale; /** * 数据库初始化 * * @author zhaojun */ @Configuration public class FlywayDbInitializer { public static final String[] SUPPORT_DB_TYPE = new String[]{"mysql", "sqlite"}; @Resource private DataSource dataSource; /** * 启动时根据当前数据库类型执行数据库初始化 */ @PostConstruct public void migrateFlyway() { try { String databaseProductName = dataSource.getConnection().getMetaData().getDatabaseProductName(); String dbType = databaseProductName.toLowerCase(Locale.ROOT); // 检查当前数据库类型是否支持 if (!StrUtil.equalsAnyIgnoreCase(dbType, SUPPORT_DB_TYPE)) { throw new RuntimeException("不支持的数据库类型 [" + dbType + "]"); } Flyway load = Flyway.configure().dataSource(dataSource).locations("db/migration-" + dbType).load(); load.migrate(); } catch (SQLException e) { e.printStackTrace(); } } } \ No newline at end of file +package im.zhaojun.zfile.common.config; import cn.hutool.core.util.StrUtil; import org.flywaydb.core.Flyway; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.SQLException; import java.util.Locale; /** * 数据库初始化 * * @author zhaojun */ @Configuration public class FlywayDbInitializer { public static final String[] SUPPORT_DB_TYPE = new String[]{"mysql", "sqlite"}; @Resource private DataSource dataSource; /** * 启动时根据当前数据库类型执行数据库初始化 */ @PostConstruct public void migrateFlyway() { try { String databaseProductName = dataSource.getConnection().getMetaData().getDatabaseProductName(); String dbType = databaseProductName.toLowerCase(Locale.ROOT); // 检查当前数据库类型是否支持 if (!StrUtil.equalsAnyIgnoreCase(dbType, SUPPORT_DB_TYPE)) { throw new RuntimeException("不支持的数据库类型 [" + dbType + "]"); } Flyway load = Flyway.configure().dataSource(dataSource).outOfOrder(true).locations("db/migration-" + dbType).load(); load.migrate(); } catch (SQLException e) { e.printStackTrace(); } } } \ No newline at end of file diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d26e38c..b867d8b 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -27,4 +27,8 @@ spring.datasource.url=jdbc:sqlite:${zfile.db.path} spring.profiles.active=prod + +# ingroe zfile-pro upgrade sql +spring.flyway.ignore-migration-patterns=V5__.*,V6__.* + # -------------- database config end -------------- \ No newline at end of file