fixed import/export for separate schemas

This commit is contained in:
SPRINX0\prochazka
2024-09-26 13:22:36 +02:00
parent 555f30c0b3
commit 53dc2e6f03
4 changed files with 34 additions and 8 deletions

View File

@@ -46,3 +46,14 @@ export function dbNameLogCategory(database: string): string {
} }
return '~nodb'; return '~nodb';
} }
export function compositeDbNameIfNeeded(
connnection: { useSeparateSchemas: boolean },
database: string,
schema: string
) {
if (connnection?.useSeparateSchemas) {
return `${database}::${schema}`;
}
return database;
}

View File

@@ -622,7 +622,8 @@
sourceStorageType: getDefaultFileFormat(getExtensions()).storageType, sourceStorageType: getDefaultFileFormat(getExtensions()).storageType,
targetStorageType: 'database', targetStorageType: 'database',
targetConnectionId: conid, targetConnectionId: conid,
targetDatabaseName: database, targetDatabaseName: extractDbNameFromComposite(database),
targetSchemaName: data.schemaName,
fixedTargetPureName: data.pureName, fixedTargetPureName: data.pureName,
}); });
// showModal(ImportExportModal, { // showModal(ImportExportModal, {
@@ -774,7 +775,7 @@
openImportExportTab({ openImportExportTab({
sourceStorageType: 'database', sourceStorageType: 'database',
sourceConnectionId: data.conid, sourceConnectionId: data.conid,
sourceDatabaseName: data.database, sourceDatabaseName: extractDbNameFromComposite(data.database),
sourceSchemaName: data.schemaName, sourceSchemaName: data.schemaName,
sourceList: [data.pureName], sourceList: [data.pureName],
}); });
@@ -827,7 +828,13 @@
pinnedTables, pinnedTables,
} from '../stores'; } from '../stores';
import openNewTab from '../utility/openNewTab'; 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 { getConnectionInfo, getDatabaseInfo } from '../utility/metadataLoaders';
import fullDisplayName from '../utility/fullDisplayName'; import fullDisplayName from '../utility/fullDisplayName';
import { showModal } from '../modals/modalTools'; import { showModal } from '../modals/modalTools';

View File

@@ -67,6 +67,7 @@
import SourceTargetConfig from './SourceTargetConfig.svelte'; import SourceTargetConfig from './SourceTargetConfig.svelte';
import useEffect from '../utility/useEffect'; import useEffect from '../utility/useEffect';
import { compositeDbNameIfNeeded } from 'dbgate-tools';
// export let uploadedFile = undefined; // export let uploadedFile = undefined;
// export let openedFile = undefined; // export let openedFile = undefined;
@@ -75,9 +76,18 @@
const { values, setFieldValue } = getFormContext(); 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 }); $: 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; $: sourceEngine = $sourceConnectionInfo?.engine;
$: sourceList = $values.sourceList; $: sourceList = $values.sourceList;

View File

@@ -14,7 +14,7 @@
import { findFileFormat, getFileFormatDirections } from '../plugins/fileformats'; import { findFileFormat, getFileFormatDirections } from '../plugins/fileformats';
import SqlEditor from '../query/SqlEditor.svelte'; import SqlEditor from '../query/SqlEditor.svelte';
import { currentArchive, currentDatabase, extensions } from '../stores'; import { currentArchive, currentDatabase, extensions } from '../stores';
import { useArchiveFiles, useConnectionInfo, useDatabaseInfo } from '../utility/metadataLoaders'; import { useConnectionInfo } from '../utility/metadataLoaders';
import FilesInput from './FilesInput.svelte'; import FilesInput from './FilesInput.svelte';
import FormConnectionSelect from './FormConnectionSelect.svelte'; import FormConnectionSelect from './FormConnectionSelect.svelte';
import FormDatabaseSelect from './FormDatabaseSelect.svelte'; import FormDatabaseSelect from './FormDatabaseSelect.svelte';
@@ -51,8 +51,6 @@
]; ];
$: storageType = $values[storageTypeField]; $: storageType = $values[storageTypeField];
$: dbinfo = useDatabaseInfo({ conid: $values[connectionIdField], database: $values[databaseNameField] });
$: archiveFiles = useArchiveFiles({ folder: $values[archiveFolderField] });
$: format = findFileFormat($extensions, storageType); $: format = findFileFormat($extensions, storageType);
$: connectionInfo = useConnectionInfo({ conid: $values[connectionIdField] }); $: connectionInfo = useConnectionInfo({ conid: $values[connectionIdField] });
$: driver = findEngineDriver($connectionInfo, $extensions); $: driver = findEngineDriver($connectionInfo, $extensions);