diff --git a/packages/tools/src/schemaInfoTools.ts b/packages/tools/src/schemaInfoTools.ts index 20a411383..2737ee778 100644 --- a/packages/tools/src/schemaInfoTools.ts +++ b/packages/tools/src/schemaInfoTools.ts @@ -46,3 +46,14 @@ export function dbNameLogCategory(database: string): string { } return '~nodb'; } + +export function compositeDbNameIfNeeded( + connnection: { useSeparateSchemas: boolean }, + database: string, + schema: string +) { + if (connnection?.useSeparateSchemas) { + return `${database}::${schema}`; + } + return database; +} diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte index 5a16cfef5..200c0254a 100644 --- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte +++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte @@ -622,7 +622,8 @@ sourceStorageType: getDefaultFileFormat(getExtensions()).storageType, targetStorageType: 'database', targetConnectionId: conid, - targetDatabaseName: database, + targetDatabaseName: extractDbNameFromComposite(database), + targetSchemaName: data.schemaName, fixedTargetPureName: data.pureName, }); // showModal(ImportExportModal, { @@ -774,7 +775,7 @@ openImportExportTab({ sourceStorageType: 'database', sourceConnectionId: data.conid, - sourceDatabaseName: data.database, + sourceDatabaseName: extractDbNameFromComposite(data.database), sourceSchemaName: data.schemaName, sourceList: [data.pureName], }); @@ -827,7 +828,13 @@ pinnedTables, } from '../stores'; import openNewTab from '../utility/openNewTab'; - import { filterName, generateDbPairingId, getAlterDatabaseScript, getConnectionLabel } from 'dbgate-tools'; + import { + extractDbNameFromComposite, + filterName, + generateDbPairingId, + getAlterDatabaseScript, + getConnectionLabel, + } from 'dbgate-tools'; import { getConnectionInfo, getDatabaseInfo } from '../utility/metadataLoaders'; import fullDisplayName from '../utility/fullDisplayName'; import { showModal } from '../modals/modalTools'; diff --git a/packages/web/src/impexp/ImportExportConfigurator.svelte b/packages/web/src/impexp/ImportExportConfigurator.svelte index e994aa056..8610aed8d 100644 --- a/packages/web/src/impexp/ImportExportConfigurator.svelte +++ b/packages/web/src/impexp/ImportExportConfigurator.svelte @@ -67,6 +67,7 @@ import SourceTargetConfig from './SourceTargetConfig.svelte'; import useEffect from '../utility/useEffect'; + import { compositeDbNameIfNeeded } from 'dbgate-tools'; // export let uploadedFile = undefined; // export let openedFile = undefined; @@ -75,9 +76,18 @@ const { values, setFieldValue } = getFormContext(); - $: targetDbinfo = useDatabaseInfo({ conid: $values.targetConnectionId, database: $values.targetDatabaseName }); - $: sourceDbinfo = useDatabaseInfo({ conid: $values.sourceConnectionId, database: $values.sourceDatabaseName }); $: sourceConnectionInfo = useConnectionInfo({ conid: $values.sourceConnectionId }); + $: targetConnectionInfo = useConnectionInfo({ conid: $values.targetConnectionId }); + + $: sourceDbinfo = useDatabaseInfo({ + conid: $values.sourceConnectionId, + database: compositeDbNameIfNeeded($sourceConnectionInfo, $values.sourceDatabaseName, $values.sourceSchemaName), + }); + $: targetDbinfo = useDatabaseInfo({ + conid: $values.targetConnectionId, + database: compositeDbNameIfNeeded($targetConnectionInfo, $values.targetDatabaseName, $values.targetSchemaName), + }); + $: sourceEngine = $sourceConnectionInfo?.engine; $: sourceList = $values.sourceList; diff --git a/packages/web/src/impexp/SourceTargetConfig.svelte b/packages/web/src/impexp/SourceTargetConfig.svelte index d25e55128..c159985d2 100644 --- a/packages/web/src/impexp/SourceTargetConfig.svelte +++ b/packages/web/src/impexp/SourceTargetConfig.svelte @@ -14,7 +14,7 @@ import { findFileFormat, getFileFormatDirections } from '../plugins/fileformats'; import SqlEditor from '../query/SqlEditor.svelte'; import { currentArchive, currentDatabase, extensions } from '../stores'; - import { useArchiveFiles, useConnectionInfo, useDatabaseInfo } from '../utility/metadataLoaders'; + import { useConnectionInfo } from '../utility/metadataLoaders'; import FilesInput from './FilesInput.svelte'; import FormConnectionSelect from './FormConnectionSelect.svelte'; import FormDatabaseSelect from './FormDatabaseSelect.svelte'; @@ -51,8 +51,6 @@ ]; $: storageType = $values[storageTypeField]; - $: dbinfo = useDatabaseInfo({ conid: $values[connectionIdField], database: $values[databaseNameField] }); - $: archiveFiles = useArchiveFiles({ folder: $values[archiveFolderField] }); $: format = findFileFormat($extensions, storageType); $: connectionInfo = useConnectionInfo({ conid: $values[connectionIdField] }); $: driver = findEngineDriver($connectionInfo, $extensions);