diff --git a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseSchemaInitializer.java b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseSchemaInitializer.java index 5394d131..f8783ee2 100644 --- a/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseSchemaInitializer.java +++ b/cameleer3-server-app/src/main/java/com/cameleer3/server/app/config/ClickHouseSchemaInitializer.java @@ -35,7 +35,17 @@ public class ClickHouseSchemaInitializer { PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] scripts = resolver.getResources("classpath:clickhouse/*.sql"); - Arrays.sort(scripts, Comparator.comparing(Resource::getFilename)); + // Sort by numeric version prefix (V1, V2, ..., V10, V11) — not alphabetically + Arrays.sort(scripts, Comparator.comparingInt(r -> { + String name = r.getFilename(); + if (name != null && name.startsWith("V")) { + int end = name.indexOf('_'); + if (end > 1) { + try { return Integer.parseInt(name.substring(1, end)); } catch (NumberFormatException ignored) {} + } + } + return Integer.MAX_VALUE; + })); for (Resource script : scripts) { String sql = script.getContentAsString(StandardCharsets.UTF_8);