Skip to content

Commit c5e19d4

Browse files
committed
Add DatabaseMetaDataPersistFacade.renameSchema()
1 parent 4216a77 commit c5e19d4

File tree

3 files changed

+23
-16
lines changed

3 files changed

+23
-16
lines changed

mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/DatabaseMetaDataPersistFacade.java

+21
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
package org.apache.shardingsphere.mode.metadata.persist.metadata;
1919

2020
import lombok.Getter;
21+
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
2122
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
23+
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
2224
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
2325
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereView;
2426
import org.apache.shardingsphere.mode.metadata.persist.metadata.service.DatabaseMetaDataPersistService;
@@ -69,4 +71,23 @@ public void alterSchema(final ShardingSphereDatabase database, final String sche
6971
droppedTables.forEach(each -> table.drop(database.getName(), schemaName, each));
7072
droppedViews.forEach(each -> view.drop(database.getName(), schemaName, each));
7173
}
74+
75+
/**
76+
* Rename schema.
77+
*
78+
* @param metaData meta data
79+
* @param database database
80+
* @param schemaName schema name
81+
* @param renameSchemaName rename schema name
82+
*/
83+
public void renameSchema(final ShardingSphereMetaData metaData, final ShardingSphereDatabase database, final String schemaName, final String renameSchemaName) {
84+
ShardingSphereSchema schema = metaData.getDatabase(database.getName()).getSchema(schemaName);
85+
if (schema.isEmpty()) {
86+
this.schema.add(database.getName(), renameSchemaName);
87+
} else {
88+
table.persist(database.getName(), renameSchemaName, schema.getAllTables());
89+
view.persist(database.getName(), renameSchemaName, schema.getAllViews());
90+
}
91+
this.schema.drop(database.getName(), schemaName);
92+
}
7293
}

mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java

+1-8
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,7 @@ public void alterSchema(final ShardingSphereDatabase database, final String sche
9999

100100
@Override
101101
public void renameSchema(final ShardingSphereDatabase database, final String schemaName, final String renameSchemaName) {
102-
ShardingSphereSchema schema = metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(database.getName()).getSchema(schemaName);
103-
if (schema.isEmpty()) {
104-
metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema().add(database.getName(), renameSchemaName);
105-
} else {
106-
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().persist(database.getName(), renameSchemaName, schema.getAllTables());
107-
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().persist(database.getName(), renameSchemaName, schema.getAllViews());
108-
}
109-
metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema().drop(database.getName(), schemaName);
102+
metaDataPersistFacade.getDatabaseMetaDataFacade().renameSchema(metaDataContextManager.getMetaDataContexts().getMetaData(), database, schemaName, renameSchemaName);
110103
}
111104

112105
@Override

mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java

+1-8
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,7 @@ private void afterAlterSchema(final ShardingSphereDatabase database, final Strin
116116

117117
@Override
118118
public void renameSchema(final ShardingSphereDatabase database, final String schemaName, final String renameSchemaName) {
119-
ShardingSphereSchema schema = metaDataContextManager.getMetaDataContexts().getMetaData().getDatabase(database.getName()).getSchema(schemaName);
120-
if (schema.isEmpty()) {
121-
metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema().add(database.getName(), renameSchemaName);
122-
} else {
123-
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().persist(database.getName(), renameSchemaName, schema.getAllTables());
124-
metaDataPersistFacade.getDatabaseMetaDataFacade().getView().persist(database.getName(), renameSchemaName, schema.getAllViews());
125-
}
126-
metaDataPersistFacade.getDatabaseMetaDataFacade().getSchema().drop(database.getName(), schemaName);
119+
metaDataPersistFacade.getDatabaseMetaDataFacade().renameSchema(metaDataContextManager.getMetaDataContexts().getMetaData(), database, schemaName, renameSchemaName);
127120
metaDataContextManager.getDatabaseMetaDataManager().renameSchema(database.getName(), schemaName, renameSchemaName);
128121
}
129122

0 commit comments

Comments
 (0)