fix: Oracle/DM数据库侧边栏不显示'默认模式'节点

This commit is contained in:
jonclex
2026-04-13 12:39:14 +08:00
parent 605e266eab
commit d849cd49af
2 changed files with 50 additions and 4 deletions

View File

@@ -11,6 +11,19 @@ const splitQualifiedName = (qualifiedName: string): { schemaName: string; object
};
};
const normalizeSidebarConnectionDialect = (type: string, driver: string): string => {
const normalizedType = String(type || '').trim().toLowerCase();
if (normalizedType === 'custom') {
const normalizedDriver = String(driver || '').trim().toLowerCase();
if (normalizedDriver === 'postgresql' || normalizedDriver === 'postgres' || normalizedDriver === 'pg') return 'postgres';
if (normalizedDriver === 'dameng' || normalizedDriver === 'dm' || normalizedDriver === 'dm8') return 'dm';
if (normalizedDriver.includes('oracle')) return 'oracle';
return normalizedDriver;
}
if (normalizedType === 'dameng') return 'dm';
return normalizedType;
};
export const normalizeSidebarViewName = (dialect: string, dbName: string, schemaName: string, viewName: string): string => {
const normalizedDialect = String(dialect || '').trim().toLowerCase();
const normalizedDbName = String(dbName || '').trim();
@@ -35,3 +48,26 @@ export const normalizeSidebarViewName = (dialect: string, dbName: string, schema
return `${normalizedSchemaName}.${normalizedViewName}`;
};
export const resolveSidebarRuntimeDatabase = (
type: string,
driver: string,
savedDatabase: string,
overrideDatabase?: string,
clearDatabase: boolean = false,
): string => {
if (clearDatabase) return '';
const normalizedSavedDatabase = String(savedDatabase || '').trim();
const normalizedOverrideDatabase = String(overrideDatabase || '').trim();
if (!normalizedOverrideDatabase) {
return normalizedSavedDatabase;
}
const dialect = normalizeSidebarConnectionDialect(type, driver);
if (dialect === 'oracle' || dialect === 'dm') {
return normalizedSavedDatabase || normalizedOverrideDatabase;
}
return normalizedOverrideDatabase;
};