diff --git a/packages/types/engines.d.ts b/packages/types/engines.d.ts index a1ea74766..5c8bc6050 100644 --- a/packages/types/engines.d.ts +++ b/packages/types/engines.d.ts @@ -48,6 +48,7 @@ export interface EngineDriver { beforeConnectionSave?: (values: any) => any; databaseUrlPlaceholder?: string; defaultAuthTypeName?: string; + importExportArgs?: any[]; connect({ server, port, user, password, database }): Promise; close(pool): Promise; query(pool: any, sql: string, options?: QueryOptions): Promise; diff --git a/packages/web/src/impexp/SourceTargetConfig.svelte b/packages/web/src/impexp/SourceTargetConfig.svelte index eb7511d9b..3ba270ca3 100644 --- a/packages/web/src/impexp/SourceTargetConfig.svelte +++ b/packages/web/src/impexp/SourceTargetConfig.svelte @@ -14,12 +14,13 @@ import { findFileFormat, getFileFormatDirections } from '../plugins/fileformats'; import SqlEditor from '../query/SqlEditor.svelte'; import { currentArchive, currentDatabase, extensions } from '../stores'; - import { useArchiveFiles, useDatabaseInfo } from '../utility/metadataLoaders'; + import { useArchiveFiles, useConnectionInfo, useDatabaseInfo } from '../utility/metadataLoaders'; import FilesInput from './FilesInput.svelte'; import FormConnectionSelect from './FormConnectionSelect.svelte'; import FormDatabaseSelect from './FormDatabaseSelect.svelte'; import FormSchemaSelect from './FormSchemaSelect.svelte'; import FormTablesSelect from './FormTablesSelect.svelte'; + import { findEngineDriver } from 'dbgate-tools'; export let direction; export let storageTypeField; @@ -52,6 +53,8 @@ $: 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);
@@ -159,12 +162,20 @@ {/if} - {#if format && format.args} + {#if format?.args} !arg.direction || arg.direction == direction)} namePrefix={`${direction}_${format.storageType}_`} /> {/if} + + {#if driver?.importExportArgs} + !arg.direction || arg.direction == direction)} + namePrefix={`${direction}_${driver.engine}_`} + /> +{/if} +