From 82ae588d9aa9860aebd9d375a0c8cc999cd188a5 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Thu, 9 Dec 2021 09:10:07 +0100 Subject: [PATCH] ability to create string mongo IDs when importing --- packages/types/engines.d.ts | 1 + .../web/src/impexp/SourceTargetConfig.svelte | 15 +++++++++++++-- packages/web/src/impexp/createImpExpScript.ts | 17 ++++++++++++++--- .../web/src/modals/ImportExportModal.svelte | 2 -- .../src/backend/createBulkInsertStream.js | 10 +++++++++- .../dbgate-plugin-mongo/src/backend/driver.js | 4 +++- .../dbgate-plugin-mongo/src/frontend/driver.js | 10 ++++++++++ 7 files changed, 50 insertions(+), 9 deletions(-) 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} +