diff --git a/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java index 2356c82..fa2a93b 100644 --- a/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java +++ b/springboot-database/src/main/java/com/tiesheng/database/service/DbMigrationInitializer.java @@ -4,7 +4,6 @@ package com.tiesheng.database.service; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.func.VoidFunc1; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.db.Db; @@ -20,6 +19,8 @@ import javax.servlet.ServletContext; import javax.sql.DataSource; import java.io.InputStream; import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.zip.Checksum; @@ -61,14 +62,16 @@ public class DbMigrationInitializer implements ServletContextInitializer { dbMigrationConfig.checkDbExists(coreDb); PathMatchingResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver(); + List resourceList = new ArrayList<>(); for (String location : dbMigrationConfig.getLocations()) { Resource[] resources = patternResolver.getResources(location); - if (ArrayUtil.isEmpty(resources)) { - return; - } - for (Resource resource : resources) { - migrationByResource(resource, coreDb); - } + resourceList.addAll(Arrays.asList(resources)); + } + + // 排序后执行sql + resourceList.sort((o1, o2) -> StrUtil.compare(o1.getFilename(), o2.getFilename(), true)); + for (Resource resource : resourceList) { + migrationByResource(resource, coreDb); } }