data duplicator fixes

This commit is contained in:
SPRINX0\prochazka
2024-11-07 16:33:57 +01:00
parent 2d823140b9
commit bafa2c2fff
4 changed files with 68 additions and 1 deletions

View File

@@ -311,6 +311,30 @@ await dbgateApi.dropAllDbObjects(${JSON.stringify(
});
};
const handleImportWithDbDuplicator = () => {
showModal(ChooseArchiveFolderModal, {
message: 'Choose archive folder for import from',
onConfirm: archiveFolder => {
openNewTab(
{
title: archiveFolder,
icon: 'img duplicator',
tabComponent: 'DataDuplicatorTab',
props: {
conid: connection?._id,
database: name,
},
},
{
editor: {
archiveFolder,
},
}
);
},
});
};
const driver = findEngineDriver(connection, getExtensions());
const commands = _.flatten((apps || []).map(x => x.commands || []));
@@ -390,6 +414,14 @@ await dbgateApi.dropAllDbObjects(${JSON.stringify(
text: 'Shell: Drop all objects',
},
driver?.databaseEngineTypes?.includes('sql') &&
hasPermission(`dbops/import`) && {
onClick: handleImportWithDbDuplicator,
text: 'Import with DB duplicator',
},
{ divider: true },
commands.length > 0 && [
commands.map((cmd: any) => ({
text: cmd.name,
@@ -451,6 +483,7 @@ await dbgateApi.dropAllDbObjects(${JSON.stringify(
import { loadSchemaList, switchCurrentDatabase } from '../utility/common';
import { isProApp } from '../utility/proTools';
import ExportDbModelModal from '../modals/ExportDbModelModal.svelte';
import ChooseArchiveFolderModal from '../modals/ChooseArchiveFolderModal.svelte';
export let data;
export let passProps;

View File

@@ -0,0 +1,33 @@
<script lang="ts">
import FormStyledButton from '../buttons/FormStyledButton.svelte';
import FormArchiveFolderSelect from '../forms/FormArchiveFolderSelect.svelte';
import FormProvider from '../forms/FormProvider.svelte';
import FormSubmit from '../forms/FormSubmit.svelte';
import ModalBase from './ModalBase.svelte';
import { closeCurrentModal } from './modalTools';
export let message = '';
export let onConfirm;
</script>
<FormProvider>
<ModalBase {...$$restProps}>
<svelte:fragment slot="header">Choose archive folder</svelte:fragment>
<div>{message}</div>
<FormArchiveFolderSelect label="Archive folder" name="archiveFolder" isNative />
<svelte:fragment slot="footer">
<FormSubmit
value="OK"
on:click={e => {
closeCurrentModal();
onConfirm(e.detail.archiveFolder);
}}
/>
<FormStyledButton type="button" value="Close" on:click={closeCurrentModal} />
</svelte:fragment>
</ModalBase>
</FormProvider>

View File

@@ -124,6 +124,7 @@
options: {
rollbackAfterFinish: !!$editorState.value?.rollbackAfterFinish,
skipRowsWithUnresolvedRefs: !!$editorState.value?.skipRowsWithUnresolvedRefs,
setNullForUnresolvedNullableRefs: !!$editorState.value?.setNullForUnresolvedNullableRefs,
},
});
return script.getScript();