This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 265e01af583 Scaling IT use accounts with restricted privileges (#19124)
265e01af583 is described below
commit 265e01af583572d76b4e371770b94a1b1562b4fe
Author: azexcy <[email protected]>
AuthorDate: Fri Jul 15 15:16:22 2022 +0800
Scaling IT use accounts with restricted privileges (#19124)
---
.github/workflows/it-scaling.yml | 2 +-
.../data/pipeline/cases/base/BaseITCase.java | 70 ++++++++--------------
.../data/pipeline/cases/entity/JdbcInfoEntity.java | 32 ----------
.../cases/general/MySQLGeneralScalingIT.java | 6 +-
.../cases/general/PostgreSQLGeneralScalingIT.java | 5 +-
.../cases/primarykey/TextPrimaryKeyScalingIT.java | 1 +
.../pipeline/cases/task/MySQLIncrementTask.java | 4 +-
.../cases/task/PostgreSQLIncrementTask.java | 4 +-
.../pipeline/env/IntegrationTestEnvironment.java | 47 +++------------
.../container/compose/BaseComposedContainer.java | 7 +++
.../container/compose/DockerComposedContainer.java | 4 ++
.../container/compose/NativeComposedContainer.java | 69 ++++++++++++++++++++-
.../container/database/MySQLContainer.java | 9 +--
.../container/database/OpenGaussContainer.java | 5 +-
.../container/database/PostgreSQLContainer.java | 11 ++--
.../proxy/ShardingSphereProxyDockerContainer.java | 6 --
.../src/test/resources/env/it-env.properties | 10 ++--
.../src/test/resources/env/mysql/initdb.sql | 10 +++-
.../resources/env/{mysql => postgresql}/initdb.sql | 16 ++++-
.../scenario/primarykey/text_primary_key/mysql.xml | 2 +-
20 files changed, 169 insertions(+), 151 deletions(-)
diff --git a/.github/workflows/it-scaling.yml b/.github/workflows/it-scaling.yml
index bc74491105f..4972fa17927 100644
--- a/.github/workflows/it-scaling.yml
+++ b/.github/workflows/it-scaling.yml
@@ -60,7 +60,7 @@ concurrency:
cancel-in-progress: true
env:
- MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false
-Dmaven.wagon.http.retryHandler.class=standard
-Dmaven.wagon.http.retryHandler.count=3 -Dmaven.javadoc.skip=true
-Drat.skip=true -Dcheckstyle.skip=true -Dspotless.apply.skip=true
-Djacoco.skip=true -Dfailsafe.skipAfterFailureCount=1
+ MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false
-Dmaven.wagon.http.retryHandler.class=standard
-Dmaven.wagon.http.retryHandler.count=3 -Dmaven.javadoc.skip=true
-Drat.skip=true -Dcheckstyle.skip=true -Dspotless.apply.skip=true
-Djacoco.skip=true -Dfailsafe.skipAfterFailureCount=1
-Dio.netty.leakDetectionLevel=advanced
jobs:
scaling-it-test:
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
index 997ed08869a..10d9282249b 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
@@ -30,7 +30,6 @@ import
org.apache.shardingsphere.infra.database.metadata.url.JdbcUrlAppender;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import
org.apache.shardingsphere.integration.data.pipeline.cases.command.CommonSQLCommand;
-import
org.apache.shardingsphere.integration.data.pipeline.cases.entity.JdbcInfoEntity;
import
org.apache.shardingsphere.integration.data.pipeline.env.IntegrationTestEnvironment;
import
org.apache.shardingsphere.integration.data.pipeline.env.enums.ScalingITEnvTypeEnum;
import
org.apache.shardingsphere.integration.data.pipeline.framework.container.compose.BaseComposedContainer;
@@ -99,6 +98,10 @@ public abstract class BaseITCase {
private final DatabaseType databaseType;
+ private final String username;
+
+ private final String password;
+
private JdbcTemplate jdbcTemplate;
@Setter
@@ -112,42 +115,25 @@ public abstract class BaseITCase {
composedContainer = new
NativeComposedContainer(parameterized.getDatabaseType());
}
composedContainer.start();
- initActualDataSources();
- commonSQLCommand =
JAXB.unmarshal(Objects.requireNonNull(BaseITCase.class.getClassLoader().getResource("env/common/command.xml")),
CommonSQLCommand.class);
+ if (ENV.getItEnvType() == ScalingITEnvTypeEnum.DOCKER) {
+ DatabaseContainer databaseContainer = ((DockerComposedContainer)
composedContainer).getDatabaseContainer();
+ username = databaseContainer.getUsername();
+ password = databaseContainer.getPassword();
+ } else {
+ username = ENV.getActualDataSourceUsername(databaseType);
+ password = ENV.getActualDataSourcePassword(databaseType);
+ }
createProxyDatabase(parameterized.getDatabaseType());
+ if (ENV.getItEnvType() == ScalingITEnvTypeEnum.NATIVE) {
+ cleanUpDataSource();
+ }
+ commonSQLCommand =
JAXB.unmarshal(Objects.requireNonNull(BaseITCase.class.getClassLoader().getResource("env/common/command.xml")),
CommonSQLCommand.class);
scalingWatcher = new ScalingWatcher(composedContainer, jdbcTemplate);
}
- @SneakyThrows(SQLException.class)
- private void initActualDataSources() {
- String jdbcUrl;
- JdbcInfoEntity jdbcInfo;
- if (ENV.getItEnvType() == ScalingITEnvTypeEnum.DOCKER) {
- DockerComposedContainer dockerComposedContainer =
(DockerComposedContainer) composedContainer;
- DatabaseContainer databaseContainer =
dockerComposedContainer.getDatabaseContainer();
- jdbcUrl = databaseContainer.getJdbcUrl("");
- jdbcInfo = new JdbcInfoEntity(databaseContainer.getUsername(),
databaseContainer.getPassword(), databaseContainer.getPort());
- } else {
- jdbcInfo = ENV.getActualDatabaseJdbcInfo(getDatabaseType());
- jdbcUrl = DataSourceEnvironment.getURL(databaseType, "localhost",
jdbcInfo.getPort(), DatabaseTypeUtil.isOpenGauss(databaseType) ? "postgres" :
"");
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
- for (String each : Arrays.asList(DS_0, DS_1, DS_2, DS_3,
DS_4)) {
- try {
-
connection.createStatement().execute(String.format("DROP DATABASE %s", each));
- } catch (final SQLException ex) {
- log.error("Error occurred when drop database. error
msg={}", ex.getMessage());
- }
- }
- }
- }
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
- for (String each : Arrays.asList(DS_0, DS_1, DS_2, DS_3, DS_4)) {
- try {
- connection.createStatement().execute(String.format("CREATE
DATABASE %s", each));
- } catch (final SQLException ex) {
- log.error("Error occurred when create database. error
msg={}", ex.getMessage());
- }
- }
+ private void cleanUpDataSource() {
+ for (String each : Arrays.asList(DS_0, DS_1, DS_2, DS_3, DS_4)) {
+ composedContainer.cleanUpDatabase(each);
}
}
@@ -220,8 +206,8 @@ public abstract class BaseITCase {
}
private void addSourceResource0(final Connection connection) throws
SQLException {
- String addSourceResource =
commonSQLCommand.getSourceAddResourceTemplate().replace("${user}",
ENV.getActualDataSourceUsername(databaseType))
- .replace("${password}",
ENV.getActualDataSourcePassword(databaseType))
+ String addSourceResource =
commonSQLCommand.getSourceAddResourceTemplate().replace("${user}", username)
+ .replace("${password}", password)
.replace("${ds0}", getActualJdbcUrlTemplate(DS_0))
.replace("${ds1}", getActualJdbcUrlTemplate(DS_1));
executeWithLog(connection, addSourceResource);
@@ -229,8 +215,8 @@ public abstract class BaseITCase {
@SneakyThrows
protected void addTargetResource() {
- String addTargetResource =
commonSQLCommand.getTargetAddResourceTemplate().replace("${user}",
ENV.getActualDataSourceUsername(databaseType))
- .replace("${password}",
ENV.getActualDataSourcePassword(databaseType))
+ String addTargetResource =
commonSQLCommand.getTargetAddResourceTemplate().replace("${user}", username)
+ .replace("${password}", password)
.replace("${ds2}", getActualJdbcUrlTemplate(DS_2))
.replace("${ds3}", getActualJdbcUrlTemplate(DS_3))
.replace("${ds4}", getActualJdbcUrlTemplate(DS_4));
@@ -292,7 +278,7 @@ public abstract class BaseITCase {
ThreadUtil.sleep(1, TimeUnit.SECONDS);
}
- private void executeWithLog(final String sql, final Integer sleepSeconds) {
+ private void executeWithLog(final String sql, final int sleepSeconds) {
log.info("jdbcTemplate execute:{}", sql);
jdbcTemplate.execute(sql);
ThreadUtil.sleep(Math.max(sleepSeconds, 0), TimeUnit.SECONDS);
@@ -330,7 +316,7 @@ public abstract class BaseITCase {
}
protected void startScaling(final String jobId) {
- executeWithLog(String.format("START SCALING %s", jobId));
+ executeWithLog(String.format("START SCALING %s", jobId), 10);
}
protected void applyScaling(final String jobId) {
@@ -344,9 +330,7 @@ public abstract class BaseITCase {
}
protected String getScalingJobId() {
- assertBeforeApplyScalingMetadataCorrectly();
List<Map<String, Object>> scalingListMap = queryForListWithLog("SHOW
SCALING LIST");
- assertThat(scalingListMap.size(), is(1));
String jobId = scalingListMap.get(0).get("id").toString();
log.info("jobId: {}", jobId);
return jobId;
@@ -359,10 +343,6 @@ public abstract class BaseITCase {
log.info("jobId: {}", jobId);
Map<String, String> actualStatusMap = new HashMap<>(2, 1);
String showScalingStatus = String.format("SHOW SCALING STATUS %s",
jobId);
- SCALING_EXECUTOR.execute(() -> {
- stopScaling(jobId);
- startScaling(jobId);
- });
for (int i = 0; i < 15; i++) {
List<Map<String, Object>> showScalingStatusResMap =
queryForListWithLog(showScalingStatus);
log.info("{}: {}", showScalingStatus, showScalingStatusResMap);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/entity/JdbcInfoEntity.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/entity/JdbcInfoEntity.java
deleted file mode 100644
index ce50cfa3bec..00000000000
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/entity/JdbcInfoEntity.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.integration.data.pipeline.cases.entity;
-
-import lombok.Data;
-import lombok.RequiredArgsConstructor;
-
-@RequiredArgsConstructor
-@Data
-public final class JdbcInfoEntity {
-
- private final String username;
-
- private final String password;
-
- private final int port;
-}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLGeneralScalingIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLGeneralScalingIT.java
index 1e6bc86f8d0..e91e0120822 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLGeneralScalingIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/MySQLGeneralScalingIT.java
@@ -84,10 +84,14 @@ public final class MySQLGeneralScalingIT extends
BaseExtraSQLITCase {
getJdbcTemplate().batchUpdate(getExtraSQLCommand().getFullInsertOrderItem(),
dataPair.getRight());
}
addTargetResource();
- startIncrementTask(new MySQLIncrementTask(getJdbcTemplate(),
keyGenerateAlgorithm, true));
+ startIncrementTask(new MySQLIncrementTask(getJdbcTemplate(),
keyGenerateAlgorithm, true, 20));
executeWithLog(getCommonSQLCommand().getAlterOrderWithItemAutoTableRule());
String jobId = getScalingJobId();
waitScalingFinished(jobId);
+ stopScaling(jobId);
+ // TODO need netty leak fixed
+// getJdbcTemplate().update("INSERT INTO t_order
(id,order_id,user_id,status) VALUES (?, ?, ?, ?)",
keyGenerateAlgorithm.generateKey(), 1, 1, "afterStopScaling");
+ startScaling(jobId);
assertCheckScalingSuccess(jobId);
applyScaling(jobId);
assertPreviewTableSuccess("t_order", Arrays.asList("ds_2", "ds_3",
"ds_4"));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/PostgreSQLGeneralScalingIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/PostgreSQLGeneralScalingIT.java
index 811446d0cc5..b3391a33e4b 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/PostgreSQLGeneralScalingIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/general/PostgreSQLGeneralScalingIT.java
@@ -88,10 +88,13 @@ public final class PostgreSQLGeneralScalingIT extends
BaseExtraSQLITCase {
getJdbcTemplate().batchUpdate(getExtraSQLCommand().getFullInsertOrder(),
dataPair.getLeft());
getJdbcTemplate().batchUpdate(getExtraSQLCommand().getFullInsertOrderItem(),
dataPair.getRight());
addTargetResource();
- startIncrementTask(new PostgreSQLIncrementTask(getJdbcTemplate(), new
SnowflakeKeyGenerateAlgorithm(), "test", true));
+ startIncrementTask(new PostgreSQLIncrementTask(getJdbcTemplate(), new
SnowflakeKeyGenerateAlgorithm(), "test", true, 20));
executeWithLog(getCommonSQLCommand().getAlterOrderWithItemAutoTableRule());
String jobId = getScalingJobId();
waitScalingFinished(jobId);
+ stopScaling(jobId);
+ executeWithLog(String.format("INSERT INTO test.t_order
(id,order_id,user_id,status) VALUES (%s, %s, %s, '%s')",
keyGenerateAlgorithm.generateKey(), 1, 1, "afterStopScaling"));
+ startScaling(jobId);
assertCheckScalingSuccess(jobId);
applyScaling(jobId);
assertPreviewTableSuccess("t_order", Arrays.asList("ds_2", "ds_3",
"ds_4"));
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/primarykey/TextPrimaryKeyScalingIT.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/primarykey/TextPrimaryKeyScalingIT.java
index 0b69ad032a0..f8a12acafab 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/primarykey/TextPrimaryKeyScalingIT.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/primarykey/TextPrimaryKeyScalingIT.java
@@ -82,6 +82,7 @@ public class TextPrimaryKeyScalingIT extends
BaseExtraSQLITCase {
assertCheckScalingSuccess(jobId);
applyScaling(jobId);
assertPreviewTableSuccess("t_order", Arrays.asList("ds_2", "ds_3",
"ds_4"));
+ restoreScalingSourceWriting(getScalingJobId());
}
private void batchInsertOrder() {
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
index b90a26858ea..5229a66eb13 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/MySQLIncrementTask.java
@@ -36,10 +36,12 @@ public final class MySQLIncrementTask extends
BaseIncrementTask {
private final Boolean incrementOrderItemTogether;
+ private final int executeCountLimit;
+
@Override
public void run() {
int executeCount = 0;
- while (executeCount < 20 && !Thread.currentThread().isInterrupted()) {
+ while (executeCount < executeCountLimit &&
!Thread.currentThread().isInterrupted()) {
Object orderPrimaryKey = insertOrder();
if (executeCount % 2 == 0) {
jdbcTemplate.update("DELETE FROM t_order WHERE id = ?",
orderPrimaryKey);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/PostgreSQLIncrementTask.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/PostgreSQLIncrementTask.java
index 2b0c671f559..fdd2de3aaae 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/PostgreSQLIncrementTask.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/task/PostgreSQLIncrementTask.java
@@ -39,10 +39,12 @@ public final class PostgreSQLIncrementTask extends
BaseIncrementTask {
private final boolean incrementOrderItemTogether;
+ private final int executeCountLimit;
+
@Override
public void run() {
int executeCount = 0;
- while (executeCount < 20 && !Thread.currentThread().isInterrupted()) {
+ while (executeCount < executeCountLimit &&
!Thread.currentThread().isInterrupted()) {
Object orderPrimaryKey = insertOrder();
if (executeCount % 2 == 0) {
jdbcTemplate.update(prefixSchema("DELETE FROM ${schema}t_order
WHERE id = ?", schema), orderPrimaryKey);
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java
index f9a4dfdbd7d..f60024c368d 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/env/IntegrationTestEnvironment.java
@@ -21,8 +21,6 @@ import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.infra.database.type.dialect.OpenGaussDatabaseType;
-import
org.apache.shardingsphere.integration.data.pipeline.cases.entity.JdbcInfoEntity;
import
org.apache.shardingsphere.integration.data.pipeline.env.enums.ScalingITEnvTypeEnum;
import java.io.IOException;
@@ -76,30 +74,17 @@ public final class IntegrationTestEnvironment {
* @param databaseType database type.
* @return jdbc connection
*/
- public JdbcInfoEntity getActualDatabaseJdbcInfo(final DatabaseType
databaseType) {
- String username;
- String password;
- int port;
+ public int getActualDatabasePort(final DatabaseType databaseType) {
switch (databaseType.getType()) {
case "MySQL":
- username =
props.getOrDefault("scaling.it.native.mysql.username", "root").toString();
- password =
props.getOrDefault("scaling.it.native.mysql.password", "root").toString();
- port =
Integer.parseInt(props.getOrDefault("scaling.it.native.mysql.port",
3307).toString());
- break;
+ return
Integer.parseInt(props.getOrDefault("scaling.it.native.mysql.port",
3307).toString());
case "PostgreSQL":
- username =
props.getOrDefault("scaling.it.native.postgresql.username",
"postgres").toString();
- password =
props.getOrDefault("scaling.it.native.postgresql.password",
"postgres").toString();
- port =
Integer.parseInt(props.getOrDefault("scaling.it.native.postgresql.port",
5432).toString());
- break;
+ return
Integer.parseInt(props.getOrDefault("scaling.it.native.postgresql.port",
5432).toString());
case "openGauss":
- username =
props.getOrDefault("scaling.it.native.opengauss.username",
"gaussdb").toString();
- password =
props.getOrDefault("scaling.it.native.opengauss.password",
"Root@123").toString();
- port =
Integer.parseInt(props.getOrDefault("scaling.it.native.opengauss.port",
5432).toString());
- break;
+ return
Integer.parseInt(props.getOrDefault("scaling.it.native.opengauss.port",
5432).toString());
default:
throw new UnsupportedOperationException("Unsupported database
type: " + databaseType.getType());
}
- return new JdbcInfoEntity(username, password, port);
}
/**
@@ -137,16 +122,7 @@ public final class IntegrationTestEnvironment {
* @return actual data source username
*/
public String getActualDataSourceUsername(final DatabaseType databaseType)
{
- String username;
- if (databaseType instanceof OpenGaussDatabaseType) {
- username = "gaussdb";
- } else {
- username = "root";
- }
- if (itEnvType == ScalingITEnvTypeEnum.NATIVE) {
- username =
String.valueOf(props.getOrDefault(String.format("scaling.it.native.%s.username",
databaseType.getType().toLowerCase()), username));
- }
- return username;
+ return
String.valueOf(props.getOrDefault(String.format("scaling.it.native.%s.username",
databaseType.getType().toLowerCase()), "root"));
}
/**
@@ -156,16 +132,7 @@ public final class IntegrationTestEnvironment {
* @return actual data source username
*/
public String getActualDataSourcePassword(final DatabaseType databaseType)
{
- String password;
- if (databaseType instanceof OpenGaussDatabaseType) {
- password = "Root@123";
- } else {
- password = "root";
- }
- if (itEnvType == ScalingITEnvTypeEnum.NATIVE) {
- password =
props.getOrDefault(String.format("scaling.it.native.%s.password",
databaseType.getType().toLowerCase()), password).toString();
- }
- return password;
+ return
String.valueOf(props.getOrDefault(String.format("scaling.it.native.%s.password",
databaseType.getType().toLowerCase()), "root"));
}
/**
@@ -186,7 +153,7 @@ public final class IntegrationTestEnvironment {
public List<String> listDatabaseDockerImageNames(final DatabaseType
databaseType) {
// Native mode needn't use docker image, just return a list which
contain one item
if (getItEnvType() == ScalingITEnvTypeEnum.NATIVE) {
- return Collections.singletonList("");
+ return
databaseType.getType().equalsIgnoreCase(getNativeDatabaseType()) ?
Collections.singletonList("") : Collections.emptyList();
}
switch (databaseType.getType()) {
case "MySQL":
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/BaseComposedContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/BaseComposedContainer.java
index c312a271123..998c35c270e 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/BaseComposedContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/BaseComposedContainer.java
@@ -38,6 +38,13 @@ public abstract class BaseComposedContainer implements
Startable {
*/
public abstract String getProxyJdbcUrl(String databaseName);
+ /**
+ * Clean up database.
+ *
+ * @param databaseName database name
+ */
+ public abstract void cleanUpDatabase(String databaseName);
+
@Override
public void start() {
getContainers().start();
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/DockerComposedContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/DockerComposedContainer.java
index 4dd2c0ac22e..1834e46a487 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/DockerComposedContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/DockerComposedContainer.java
@@ -60,4 +60,8 @@ public final class DockerComposedContainer extends
BaseComposedContainer {
public String getProxyJdbcUrl(final String databaseName) {
return DataSourceEnvironment.getURL(databaseType,
proxyContainer.getHost(), proxyContainer.getFirstMappedPort(), databaseName);
}
+
+ @Override
+ public void cleanUpDatabase(final String databaseName) {
+ }
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/NativeComposedContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/NativeComposedContainer.java
index 6130d789d30..43c3c45bb7d 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/NativeComposedContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/compose/NativeComposedContainer.java
@@ -17,14 +17,29 @@
package
org.apache.shardingsphere.integration.data.pipeline.framework.container.compose;
+import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.database.metadata.url.JdbcUrlAppender;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import
org.apache.shardingsphere.integration.data.pipeline.env.IntegrationTestEnvironment;
import org.apache.shardingsphere.test.integration.env.DataSourceEnvironment;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Properties;
+
/**
* Native composed container, you need start ShardingSphere-Proxy at firstly.
*/
public final class NativeComposedContainer extends BaseComposedContainer {
+ private static final IntegrationTestEnvironment ENV =
IntegrationTestEnvironment.getInstance();
+
+ private final JdbcUrlAppender jdbcUrlAppender = new JdbcUrlAppender();
+
private final DatabaseType databaseType;
public NativeComposedContainer(final DatabaseType databaseType) {
@@ -33,7 +48,59 @@ public final class NativeComposedContainer extends
BaseComposedContainer {
@Override
public void start() {
-
+ // do nothing
+ }
+
+ @SneakyThrows
+ @Override
+ public void cleanUpDatabase(final String databaseName) {
+ int actualDatabasePort = ENV.getActualDatabasePort(databaseType);
+ String username = ENV.getActualDataSourceUsername(databaseType);
+ String password = ENV.getActualDataSourcePassword(databaseType);
+ String jdbcUrl;
+ switch (databaseType.getType()) {
+ case "MySQL":
+ String queryAllTables = String.format("select table_name from
information_schema.tables where table_schema='%s' and table_type='BASE TABLE'",
databaseName);
+ jdbcUrl = DataSourceEnvironment.getURL(databaseType,
"localhost", actualDatabasePort, databaseName);
+ Properties properties = new Properties();
+ properties.setProperty("allowPublicKeyRetrieval", "true");
+ try (Connection connection =
DriverManager.getConnection(jdbcUrlAppender.appendQueryProperties(jdbcUrl,
properties), username, password)) {
+ try (ResultSet resultSet =
connection.createStatement().executeQuery(queryAllTables)) {
+ List<String> actualTableNames =
getFirstColumnValueFromResult(resultSet);
+ for (String each : actualTableNames) {
+
connection.createStatement().executeUpdate(String.format("drop table %s",
each));
+ }
+ }
+ }
+ break;
+ case "openGauss":
+ case "PostgreSQL":
+ jdbcUrl = DataSourceEnvironment.getURL(databaseType,
"localhost", actualDatabasePort, databaseName);
+ try (Connection connection =
DriverManager.getConnection(jdbcUrl, username, password)) {
+ dropTableWithSchema(connection, "public");
+ dropTableWithSchema(connection, "test");
+ }
+ break;
+ default:
+ }
+ }
+
+ private static List<String> getFirstColumnValueFromResult(final ResultSet
resultSet) throws SQLException {
+ List<String> result = new LinkedList<>();
+ while (resultSet.next()) {
+ result.add(resultSet.getString(1));
+ }
+ return result;
+ }
+
+ private void dropTableWithSchema(final Connection connection, final String
schema) throws SQLException {
+ String queryAllTables = "select tablename from pg_tables where
schemaname='%s'";
+ try (ResultSet resultSet =
connection.createStatement().executeQuery(String.format(queryAllTables,
schema))) {
+ List<String> actualTableNames =
getFirstColumnValueFromResult(resultSet);
+ for (String each : actualTableNames) {
+ connection.createStatement().executeUpdate(String.format("drop
table %s.%s", schema, each));
+ }
+ }
}
@Override
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/MySQLContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/MySQLContainer.java
index 3118aee9c26..9a8aa55701b 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/MySQLContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/MySQLContainer.java
@@ -29,7 +29,7 @@ public final class MySQLContainer extends DatabaseContainer {
private static final DatabaseType DATABASE_TYPE = new MySQLDatabaseType();
- private final String username = "root";
+ private final String username = "scaling";
private final String password = "root";
@@ -41,13 +41,14 @@ public final class MySQLContainer extends DatabaseContainer
{
@Override
protected void configure() {
- withCommand("--sql_mode=",
"--default-authentication-plugin=mysql_native_password");
+ withCommand("--sql_mode=",
"--default-authentication-plugin=mysql_native_password",
"--lower_case_table_names=1");
addEnv("LANG", "C.UTF-8");
- addEnv("MYSQL_ROOT_PASSWORD", username);
+ addEnv("MYSQL_ROOT_PASSWORD", "root");
addEnv("MYSQL_ROOT_HOST", "%");
withClasspathResourceMapping("/env/mysql/my.cnf", "/etc/mysql/my.cnf",
BindMode.READ_ONLY);
+ withClasspathResourceMapping("/env/mysql/initdb.sql",
"/docker-entrypoint-initdb.d/", BindMode.READ_ONLY);
withExposedPorts(port);
- setWaitStrategy(new JDBCConnectionWaitStrategy(() ->
DriverManager.getConnection(DataSourceEnvironment.getURL(DATABASE_TYPE,
"localhost", getFirstMappedPort()), "root", "root")));
+ setWaitStrategy(new JDBCConnectionWaitStrategy(() ->
DriverManager.getConnection(DataSourceEnvironment.getURL(DATABASE_TYPE,
"localhost", getFirstMappedPort()), username, password)));
}
@Override
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/OpenGaussContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/OpenGaussContainer.java
index a9acbc33c43..f7a6d96952d 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/OpenGaussContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/OpenGaussContainer.java
@@ -39,11 +39,8 @@ public final class OpenGaussContainer extends
DatabaseContainer {
private final int port = 5432;
- private String dockerImageName = "";
-
public OpenGaussContainer(final String dockerImageName) {
super(DATABASE_TYPE, dockerImageName);
- this.dockerImageName = dockerImageName;
}
@Override
@@ -51,6 +48,8 @@ public final class OpenGaussContainer extends
DatabaseContainer {
withCommand("--max_connections=600");
addEnv("GS_PASSWORD", password);
withClasspathResourceMapping("/env/postgresql/postgresql.conf",
"/usr/local/opengauss/share/postgresql/postgresql.conf.sample",
BindMode.READ_ONLY);
+ withClasspathResourceMapping("/env/postgresql/initdb.sql",
"/docker-entrypoint-initdb.d/", BindMode.READ_ONLY);
+
withPrivilegedMode(true);
withExposedPorts(port);
setWaitStrategy(new JDBCConnectionWaitStrategy(() ->
DriverManager.getConnection(DataSourceEnvironment.getURL(DATABASE_TYPE,
"localhost", getFirstMappedPort(), "postgres"),
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/PostgreSQLContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/PostgreSQLContainer.java
index 424a3f0a5fe..a6e3e3bf27a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/PostgreSQLContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/database/PostgreSQLContainer.java
@@ -29,7 +29,7 @@ public final class PostgreSQLContainer extends
DatabaseContainer {
private static final DatabaseType DATABASE_TYPE = new
PostgreSQLDatabaseType();
- private final String username = "root";
+ private final String username = "scaling";
private final String password = "root";
@@ -43,12 +43,15 @@ public final class PostgreSQLContainer extends
DatabaseContainer {
protected void configure() {
withCommand("--max_connections=600");
withCommand("--wal_level=logical");
- addEnv("POSTGRES_USER", username);
- addEnv("POSTGRES_PASSWORD", password);
+ String rootUsername = "root";
+ String rootPassword = "root";
+ addEnv("POSTGRES_USER", rootUsername);
+ addEnv("POSTGRES_PASSWORD", rootPassword);
withClasspathResourceMapping("/env/postgresql/postgresql.conf",
"/etc/postgresql/postgresql.conf", BindMode.READ_ONLY);
+ withClasspathResourceMapping("/env/postgresql/initdb.sql",
"/docker-entrypoint-initdb.d/", BindMode.READ_ONLY);
withExposedPorts(port);
setWaitStrategy(new JDBCConnectionWaitStrategy(() ->
DriverManager.getConnection(DataSourceEnvironment.getURL(DATABASE_TYPE,
"localhost", getFirstMappedPort(), "postgres"),
- username, password)));
+ rootUsername, rootPassword)));
}
@Override
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/proxy/ShardingSphereProxyDockerContainer.java
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/proxy/ShardingSphereProxyDockerContainer.java
index ce325d7b262..c6b22ae64a7 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/proxy/ShardingSphereProxyDockerContainer.java
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/framework/container/proxy/ShardingSphereProxyDockerContainer.java
@@ -19,8 +19,6 @@ package
org.apache.shardingsphere.integration.data.pipeline.framework.container.
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
-import
org.apache.shardingsphere.integration.data.pipeline.env.IntegrationTestEnvironment;
-import
org.apache.shardingsphere.integration.data.pipeline.env.enums.ScalingITEnvTypeEnum;
import
org.apache.shardingsphere.integration.data.pipeline.util.DatabaseTypeUtil;
import org.apache.shardingsphere.test.integration.env.DataSourceEnvironment;
import
org.apache.shardingsphere.test.integration.framework.container.atomic.DockerITContainer;
@@ -56,9 +54,5 @@ public final class ShardingSphereProxyDockerContainer extends
DockerITContainer
private void mapConfigurationFiles() {
withClasspathResourceMapping(String.format("/env/%s/server.yaml",
databaseType.getType().toLowerCase()),
"/opt/shardingsphere-proxy/conf/server.yaml", BindMode.READ_ONLY);
withClasspathResourceMapping("/env/logback.xml",
"/opt/shardingsphere-proxy/conf/logback.xml", BindMode.READ_ONLY);
- if (ScalingITEnvTypeEnum.NATIVE ==
IntegrationTestEnvironment.getInstance().getItEnvType()) {
- addFixedExposedPort(3307, 3307);
- addFixedExposedPort(5005, 3308);
- }
}
}
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/it-env.properties
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/it-env.properties
index d440ba50b37..ea582dc9624 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/it-env.properties
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/it-env.properties
@@ -14,15 +14,15 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# it.type=DOCKER,NATIVE
+# scaling.it.type=DOCKER,NATIVE
scaling.it.env.type=
-# it.docker.mysql.version=mysql:5.7,mysql:8.0
+# scaling.it.docker.mysql.version=mysql:5.7,mysql:8.0
scaling.it.docker.mysql.version=
-#
it.docker.postgresql.version=postgres:10-alpine,postgres:11-alpine,postgres:12-alpine,postgres:13-alpine,postgres:14-alpine
+#
scaling.it.docker.postgresql.version=postgres:10-alpine,postgres:11-alpine,postgres:12-alpine,postgres:13-alpine,postgres:14-alpine
scaling.it.docker.postgresql.version=
-# it.docker.opengauss.version=enmotech/opengauss:3.0.0,enmotech/opengauss:2.1.0
+#
scaling.it.docker.opengauss.version=enmotech/opengauss:3.0.0,enmotech/opengauss:2.1.0
scaling.it.docker.opengauss.version=
-# it.native.database=mysql or postgresql or opengauss
+# scaling.it.native.database=mysql or postgresql or opengauss
scaling.it.native.database=
scaling.it.native.mysql.username=root
scaling.it.native.mysql.password=root
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
index 95ab61e3196..b856d3cc87a 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
@@ -15,5 +15,11 @@
-- limitations under the License.
--
-CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'root';
-GRANT All privileges ON *.* TO 'root'@'%';
+CREATE DATABASE scaling_it_0;
+CREATE DATABASE scaling_it_1;
+CREATE DATABASE scaling_it_2;
+CREATE DATABASE scaling_it_3;
+CREATE DATABASE scaling_it_4;
+CREATE USER IF NOT EXISTS 'scaling'@'%' IDENTIFIED BY 'root';
+GRANT Replication Client, Replication Slave, Select, Insert, Update, Delete,
Index ON *.* TO `scaling`@`%`;
+GRANT Create, Drop ON TABLE *.* TO scaling;
\ No newline at end of file
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/postgresql/initdb.sql
similarity index 58%
copy from
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
copy to
shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/postgresql/initdb.sql
index 95ab61e3196..d0febc188c8 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/mysql/initdb.sql
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/postgresql/initdb.sql
@@ -13,7 +13,17 @@
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
---
-CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'root';
-GRANT All privileges ON *.* TO 'root'@'%';
+CREATE DATABASE scaling_it_0;
+CREATE DATABASE scaling_it_1;
+CREATE DATABASE scaling_it_2;
+CREATE DATABASE scaling_it_3;
+CREATE DATABASE scaling_it_4;
+CREATE USER scaling WITH ENCRYPTED PASSWORD 'root';
+CREATE DATABASE scaling;
+ALTER ROLE scaling CREATEDB REPLICATION;
+GRANT CREATE, CONNECT ON DATABASE scaling_it_0 TO scaling;
+GRANT CREATE, CONNECT ON DATABASE scaling_it_1 TO scaling;
+GRANT CREATE, CONNECT ON DATABASE scaling_it_2 TO scaling;
+GRANT CREATE, CONNECT ON DATABASE scaling_it_3 TO scaling;
+GRANT CREATE, CONNECT ON DATABASE scaling_it_4 TO scaling;
diff --git
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/scenario/primarykey/text_primary_key/mysql.xml
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/scenario/primarykey/text_primary_key/mysql.xml
index bbcbceb69c9..e4842f66c09 100644
---
a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/scenario/primarykey/text_primary_key/mysql.xml
+++
b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-integration-test-scaling/src/test/resources/env/scenario/primarykey/text_primary_key/mysql.xml
@@ -16,7 +16,7 @@
-->
<command>
<create-table-order>
- CREATE TABLE `t_order` (
+ CREATE TABLE `T_ORDER` (
`id` varchar(255) NOT NULL COMMENT 'pk id',
`order_id` INT NOT NULL,
`user_id` INT NOT NULL,