From 5f6fd591a3b588de9c0f120775666235748c3649 Mon Sep 17 00:00:00 2001 From: "761302945@qq.com" <761302945@qq.com> Date: Tue, 12 Jul 2022 00:03:36 +0800 Subject: [PATCH 1/3] fix: update demo database --- bin/h2/datart.demo.mv.db | Bin 90112 -> 65536 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/bin/h2/datart.demo.mv.db b/bin/h2/datart.demo.mv.db index 0f9df9b819007336dff90864301726cf6adb256c..519001e7ca2251dee3a7194ffdbc50580118d374 100644 GIT binary patch literal 65536 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 X+W(pTo$l6s$^LgDzu_iF5k&w0_#1Dv literal 90112 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 Date: Tue, 12 Jul 2022 00:07:22 +0800 Subject: [PATCH 2/3] fix: application profile switch bug fix --- config/profiles/application-config.yml | 2 + .../calcite/dialect/CustomSqlDialect.java | 3 +- .../config/CustomPropertiesValidate.java | 38 +++++++++++++++---- .../server/config/DatabaseMigrationAware.java | 8 ++-- .../src/main/resources/application-demo.yml | 1 + server/src/main/resources/application.yml | 6 +-- 6 files changed, 41 insertions(+), 17 deletions(-) diff --git a/config/profiles/application-config.yml b/config/profiles/application-config.yml index ffdaff7ee..9d8fc26f6 100644 --- a/config/profiles/application-config.yml +++ b/config/profiles/application-config.yml @@ -80,6 +80,8 @@ server: keyAlias: tomcat datart: + migration: + enable: true # 是否开启数据库自动升级 server: address: ${datart.address:http://127.0.0.1:8080} diff --git a/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/dialect/CustomSqlDialect.java b/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/dialect/CustomSqlDialect.java index c75fb9802..1aabb2f75 100644 --- a/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/dialect/CustomSqlDialect.java +++ b/data-providers/data-provider-base/src/main/java/datart/data/provider/calcite/dialect/CustomSqlDialect.java @@ -56,7 +56,8 @@ private static Context createContext(JdbcDriverInfo driverInfo) { public void unparseOffsetFetch(SqlWriter writer, SqlNode offset, SqlNode fetch) { if (driverInfo.getSupportSqlLimit() != null && driverInfo.getSupportSqlLimit()) { unparseFetchUsingLimit(writer, offset, fetch); + } else { + super.unparseOffsetFetch(writer, offset, fetch); } - super.unparseOffsetFetch(writer, offset, fetch); } } diff --git a/server/src/main/java/datart/server/config/CustomPropertiesValidate.java b/server/src/main/java/datart/server/config/CustomPropertiesValidate.java index 996813be0..8295d1423 100644 --- a/server/src/main/java/datart/server/config/CustomPropertiesValidate.java +++ b/server/src/main/java/datart/server/config/CustomPropertiesValidate.java @@ -14,6 +14,7 @@ import org.springframework.core.env.MutablePropertySources; import org.springframework.core.env.PropertiesPropertySource; import org.springframework.core.env.PropertySource; +import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.FileSystemResource; import org.springframework.data.util.ReflectionUtils; @@ -101,21 +102,42 @@ private String getConfigName(Class clazz, String fieldName) { } private void switchProfile(ConfigurableEnvironment environment) { - String url = getDefaultDBUrl(environment); - if (url == null || (url.contains("null") && environment.getProperty(CONFIG_DATABASE_URL) == null)) { - environment.setActiveProfiles("demo"); - System.err.println("【********* Invalid database configuration. Datart is running in demo mode *********】"); + try { + String url = getDefaultDBUrl(environment); + if (url == null || (url.contains("null") && environment.getProperty(CONFIG_DATABASE_URL) == null)) { + environment.setActiveProfiles("demo"); + // remove default config propertySource + String defaultConfig = null; + for (PropertySource propertySource : environment.getPropertySources()) { + if (propertySource.getName().contains("application-config")) { + defaultConfig = propertySource.getName(); + } + } + if (defaultConfig != null) { + environment.getPropertySources().remove(defaultConfig); + } + // add demo propertySource + List> propertySources = new YamlPropertySourceLoader().load("demo", new ClassPathResource("application-demo.yml")); + if (propertySources != null && propertySources.size() > 0) { + for (PropertySource propertySource : propertySources) { + environment.getPropertySources().addFirst(propertySource); + } + } + System.err.println("【********* Invalid database configuration. Datart is running in demo mode *********】"); + } + } catch (Exception e) { + throw new RuntimeException(e); } } - private String processDBUrl(ConfigurableEnvironment environment){ + private String processDBUrl(ConfigurableEnvironment environment) { String jdbcUrl = environment.getProperty(DATABASE_URL); if (!StringUtils.startsWith(jdbcUrl, "jdbc:mysql")) { return ""; } Boolean isModify = false; String[] split = StringUtils.split(jdbcUrl, "?"); - if (split.length>1) { + if (split.length > 1) { Map urlParams = UrlUtils.getParamsMap(split[1]); if (!"true".equals(urlParams.getOrDefault("allowMultiQueries", "false"))) { isModify = true; @@ -128,7 +150,7 @@ private String processDBUrl(ConfigurableEnvironment environment){ jdbcUrl = split[0] + "?" + UrlUtils.covertMapToUrlParams(urlParams); } else { isModify = true; - jdbcUrl = jdbcUrl+"?allowMultiQueries=true&characterEncoding=utf-8"; + jdbcUrl = jdbcUrl + "?allowMultiQueries=true&characterEncoding=utf-8"; } if (isModify) { return jdbcUrl; @@ -148,7 +170,7 @@ private String getDefaultDBUrl(ConfigurableEnvironment environment) { System.err.println("Default config application-config not found "); return null; } - return (String) propertySources.get(0).getProperty(DATABASE_URL); + return environment.getProperty(DATABASE_URL); } catch (Exception e) { e.printStackTrace(); System.err.println("Default config application-config not found "); diff --git a/server/src/main/java/datart/server/config/DatabaseMigrationAware.java b/server/src/main/java/datart/server/config/DatabaseMigrationAware.java index dc404121e..a74f7f82f 100644 --- a/server/src/main/java/datart/server/config/DatabaseMigrationAware.java +++ b/server/src/main/java/datart/server/config/DatabaseMigrationAware.java @@ -21,7 +21,6 @@ import datart.core.migration.DatabaseMigration; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.Ordered; @@ -31,12 +30,10 @@ @Component public class DatabaseMigrationAware implements ApplicationContextAware, Ordered { - @Value("${datart.migration.enable:true}") - private boolean migrationEnable; - @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - if (!migrationEnable) { + String migrationEnable = applicationContext.getEnvironment().getProperty("datart.migration.enable"); + if (migrationEnable == null || "false".equals(migrationEnable)) { return; } DatabaseMigration databaseMigration = applicationContext.getBean(DatabaseMigration.class); @@ -51,4 +48,5 @@ public void setApplicationContext(ApplicationContext applicationContext) throws public int getOrder() { return 0; } + } diff --git a/server/src/main/resources/application-demo.yml b/server/src/main/resources/application-demo.yml index 5312444b9..c534d005f 100644 --- a/server/src/main/resources/application-demo.yml +++ b/server/src/main/resources/application-demo.yml @@ -15,6 +15,7 @@ server: mime-types: application/javascript,application/json,application/xml,text/html,text/xml,text/plain,text/css,image/* datart: + migration: enable: false diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index a8f9e29a0..252077b1b 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -68,12 +68,12 @@ shiro: enabled: false datart: + migration: + enable: false + server: path-prefix: /api/v1 - migration: - enable: true - server: port: 8080 address: 0.0.0.0 From bf26fa8ac5b3025fcd71ab7c894c89b01df5a3e6 Mon Sep 17 00:00:00 2001 From: "761302945@qq.com" <761302945@qq.com> Date: Tue, 12 Jul 2022 00:07:56 +0800 Subject: [PATCH 3/3] fix: disable sql test case --- .../test/java/datart/data/provider/sql/SqlScriptRenderTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data-providers/jdbc-data-provider/src/test/java/datart/data/provider/sql/SqlScriptRenderTest.java b/data-providers/jdbc-data-provider/src/test/java/datart/data/provider/sql/SqlScriptRenderTest.java index 1efb853ab..95ec293cf 100644 --- a/data-providers/jdbc-data-provider/src/test/java/datart/data/provider/sql/SqlScriptRenderTest.java +++ b/data-providers/jdbc-data-provider/src/test/java/datart/data/provider/sql/SqlScriptRenderTest.java @@ -36,6 +36,7 @@ import org.apache.calcite.sql.fun.SqlStdOperatorTable; import org.apache.calcite.sql.parser.SqlParseException; import org.apache.calcite.sql.parser.SqlParserPos; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -43,6 +44,7 @@ @SpringBootTest(classes = DataProviderTestApplication.class) @Slf4j +@Disabled public class SqlScriptRenderTest { private static final String T = "DATART_VTABLE";