diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index c7afd9674..b24b77bcc 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -654,7 +654,10 @@ registerCommand({ name: 'SQL Generator', toolbar: true, icon: 'icon sql-generator', - testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/sql-generator`), + testEnabled: () => + getCurrentDatabase() != null && + hasPermission(`dbops/sql-generator`) && + findEngineDriver(getCurrentDatabase()?.connection, getExtensions())?.databaseEngineTypes?.includes('sql'), onClick: () => showModal(SqlGeneratorModal, { conid: getCurrentDatabase()?.connection?._id, @@ -662,6 +665,23 @@ registerCommand({ }), }); +registerCommand({ + id: 'database.export', + category: 'Database', + name: 'Export database', + toolbar: true, + icon: 'icon export', + testEnabled: () => getCurrentDatabase() != null, + onClick: () => { + openImportExportTab({ + targetStorageType: getDefaultFileFormat(getExtensions()).storageType, + sourceStorageType: 'database', + sourceConnectionId: getCurrentDatabase()?.connection?._id, + sourceDatabaseName: getCurrentDatabase()?.name, + }); + }, +}); + if (hasPermission('settings/change')) { registerCommand({ id: 'settings.commands', diff --git a/packages/web/src/modals/NewObjectModal.svelte b/packages/web/src/modals/NewObjectModal.svelte index 9b8400ddc..d5a4e07f3 100644 --- a/packages/web/src/modals/NewObjectModal.svelte +++ b/packages/web/src/modals/NewObjectModal.svelte @@ -77,6 +77,14 @@ command: 'sql.generator', testid: 'NewObjectModal_sqlGenerator', }, + { + icon: 'icon export', + colorClass: 'color-icon-green', + title: 'Export database', + description: 'Export to file like CSV, JSON, Excel, or other DB', + command: 'database.export', + testid: 'NewObjectModal_databaseExport', + }, ];