perf;对数据库文件排序后执行

This commit is contained in:
曾文豪
2023-03-06 14:02:27 +08:00
parent 9f62986a1e
commit c02e67f85f

View File

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