diff --git a/dmt/src/main/java/com/gbase8c/dmt/db/opengauss/SynonymObjectImpl.java b/dmt/src/main/java/com/gbase8c/dmt/db/opengauss/SynonymObjectImpl.java index 870fc0dc3d1dc46a660c8bd054aefd34ab95d06b..23c4ed239dddae1ad8afcdb95fe4ec55d4191476 100644 --- a/dmt/src/main/java/com/gbase8c/dmt/db/opengauss/SynonymObjectImpl.java +++ b/dmt/src/main/java/com/gbase8c/dmt/db/opengauss/SynonymObjectImpl.java @@ -1,6 +1,7 @@ package com.gbase8c.dmt.db.opengauss; import com.gbase8c.dmt.db.object.SynonymObject; +import com.gbase8c.dmt.model.migration.config.SchemaConfig; import com.gbase8c.dmt.model.migration.dto.DataSourceDto; import com.gbase8c.dmt.model.migration.dto.SynonymDto; import com.google.common.collect.Lists; @@ -11,6 +12,8 @@ import org.apache.commons.dbutils.handlers.ColumnListHandler; import java.util.List; import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; @Slf4j // todo 没有具体实现 @@ -52,10 +55,14 @@ public class SynonymObjectImpl extends MetaImpl implements SynonymObject { @Override public String sql(SynonymDto synonymDto, Map params) { + Map map = synonymDto.getTask().getSchemaConfig().getSchemaMappers().stream() + .collect(Collectors.toMap(SchemaConfig.SchemaMapper::getSrcSchemaName, SchemaConfig.SchemaMapper::getTarSchemaName)); String synonymName = synonymDto.getName(); String tarSynSchema = synonymDto.getTarSchema(); - String tarTableSchema = synonymDto.getObjectOwner(); -// String tarTableSchema = synonymDto.getObjectOwner(); + String tarTableSchema = map.get(synonymDto.getObjectOwner()); + if (Objects.isNull(tarTableSchema)) { + tarTableSchema = synonymDto.getObjectOwner(); + } String synObjName = synonymDto.getSynObjName(); boolean preserveCase = synonymDto.getTask().getMigrateConfig().isPreserveCase(); @@ -64,7 +71,7 @@ public class SynonymObjectImpl extends MetaImpl implements SynonymObject { //stringBuilder.append("drop synonym ").append(schema).append(".").append(synonymName).append(";"); stringBuilder.append("create synonym ").append(wrap(tarSynSchema, true)) .append(".").append(wrap(synonymName, preserveCase)).append(" for ") - .append(wrap(tarTableSchema, true)).append(".").append(wrap(synObjName, preserveCase)); + .append("\"").append(tarTableSchema).append("\"").append(".").append(wrap(synObjName, preserveCase)); log.info(stringBuilder.toString()); return stringBuilder.toString(); }