separate schema selector in frontend

This commit is contained in:
Jan Prochazka
2024-09-19 15:19:16 +02:00
parent cb7224ac94
commit 4431d08a88
14 changed files with 90 additions and 37 deletions

View File

@@ -1,14 +1,19 @@
import { SchemaInfo, SqlDialect } from 'dbgate-types';
export function findDefaultSchema(schemaList: SchemaInfo[], dialect: SqlDialect) {
export function findDefaultSchema(schemaList: SchemaInfo[], dialect: SqlDialect, schemaInStorage: string = null) {
if (!schemaList) {
return null;
}
if (schemaInStorage && schemaList.find(x => x.schemaName == schemaInStorage)) {
return schemaInStorage;
}
const dynamicDefaultSchema = schemaList.find(x => x.isDefault);
if (dynamicDefaultSchema) {
return dynamicDefaultSchema.schemaName;
}
if (dialect.defaultSchemaName && schemaList.find(x => x.schemaName == dialect.defaultSchemaName)) {
if (dialect?.defaultSchemaName && schemaList.find(x => x.schemaName == dialect.defaultSchemaName)) {
return dialect.defaultSchemaName;
}
return schemaList[0]?.schemaName;
@@ -26,3 +31,7 @@ export function splitCompositeDbName(name: string) {
export function extractDbNameFromComposite(name: string) {
return isCompositeDbName(name) ? splitCompositeDbName(name).database : name;
}
export function extractSchemaNameFromComposite(name: string) {
return splitCompositeDbName(name)?.schema;
}