mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-29 15:43:59 +00:00
import SQL dump
This commit is contained in:
@@ -13,7 +13,11 @@ class ImportStream extends stream.Transform {
|
|||||||
this.driver = driver;
|
this.driver = driver;
|
||||||
}
|
}
|
||||||
async _transform(chunk, encoding, cb) {
|
async _transform(chunk, encoding, cb) {
|
||||||
await this.driver.script(this.pool, chunk);
|
try {
|
||||||
|
await this.driver.script(this.pool, chunk);
|
||||||
|
} catch (err) {
|
||||||
|
this.emit('error', err.message);
|
||||||
|
}
|
||||||
cb();
|
cb();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -213,7 +213,7 @@
|
|||||||
isSqlOrDoc && !connection.isReadOnly && { onClick: handleImport, text: 'Import wizard' },
|
isSqlOrDoc && !connection.isReadOnly && { onClick: handleImport, text: 'Import wizard' },
|
||||||
isSqlOrDoc && { onClick: handleExport, text: 'Export wizard' },
|
isSqlOrDoc && { onClick: handleExport, text: 'Export wizard' },
|
||||||
driver?.supportsDatabaseDump && { onClick: handleSqlDump, text: 'Backup/export SQL dump' },
|
driver?.supportsDatabaseDump && { onClick: handleSqlDump, text: 'Backup/export SQL dump' },
|
||||||
driver?.supportsDatabaseDump && { onClick: handleSqlRestore, text: 'Restore/import SQL dump' },
|
driver?.databaseEngineTypes?.includes('sql') && { onClick: handleSqlRestore, text: 'Restore/import SQL dump' },
|
||||||
{ divider: true },
|
{ divider: true },
|
||||||
isSqlOrDoc && { onClick: handleShowDiagram, text: 'Show diagram' },
|
isSqlOrDoc && { onClick: handleShowDiagram, text: 'Show diagram' },
|
||||||
isSqlOrDoc && { onClick: handleSqlGenerator, text: 'SQL Generator' },
|
isSqlOrDoc && { onClick: handleSqlGenerator, text: 'SQL Generator' },
|
||||||
|
|||||||
@@ -49,6 +49,22 @@
|
|||||||
inputFile = url;
|
inputFile = url;
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const handleBrowse = async () => {
|
||||||
|
const electron = getElectron();
|
||||||
|
const files = await electron.showOpenDialog({
|
||||||
|
properties: ['openFile'],
|
||||||
|
filters: [
|
||||||
|
{ name: 'SQL Files', extensions: ['*.sql'] },
|
||||||
|
{ name: 'All Files', extensions: ['*'] },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
if (files && files[0]) {
|
||||||
|
const path = window.require('path');
|
||||||
|
inputFile = files[0];
|
||||||
|
inputLabel = path.parse(inputFile).name;
|
||||||
|
}
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<FormProvider>
|
<FormProvider>
|
||||||
@@ -56,16 +72,19 @@
|
|||||||
<svelte:fragment slot="header">Import database dump</svelte:fragment>
|
<svelte:fragment slot="header">Import database dump</svelte:fragment>
|
||||||
|
|
||||||
<div class="m-3">Source: {inputLabel}</div>
|
<div class="m-3">Source: {inputLabel}</div>
|
||||||
{#if electron}
|
|
||||||
<ElectronFilesInput />
|
|
||||||
{:else}
|
|
||||||
<UploadButton />
|
|
||||||
{/if}
|
|
||||||
|
|
||||||
<FormStyledButton value="Add web URL" on:click={handleAddUrl} />
|
<div class="flex">
|
||||||
|
{#if electron}
|
||||||
|
<FormStyledButton type="button" value="Browse" on:click={handleBrowse} />
|
||||||
|
{:else}
|
||||||
|
<UploadButton />
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<FormStyledButton value="Add web URL" on:click={handleAddUrl} />
|
||||||
|
</div>
|
||||||
|
|
||||||
<svelte:fragment slot="footer">
|
<svelte:fragment slot="footer">
|
||||||
<FormSubmit value="OK" on:click={e => handleSubmit(e.detail)} />
|
<FormSubmit value="Run import" on:click={e => handleSubmit(e.detail)} disabled={!inputFile} />
|
||||||
<FormStyledButton type="button" value="Cancel" on:click={closeCurrentModal} />
|
<FormStyledButton type="button" value="Cancel" on:click={closeCurrentModal} />
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
</ModalBase>
|
</ModalBase>
|
||||||
|
|||||||
Reference in New Issue
Block a user