diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index 8e913e50b..c4f77ce74 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -137,6 +137,13 @@ module.exports = { socket.emit(`runner-progress-${runid}`, { ...progressData, progressName: name }); }, + handle_copyStreamError(conid, database, { copyStreamError }) { + const { progressName } = copyStreamError; + const { runid } = progressName; + logger.error(`Error in database connection ${conid}, database ${database}: ${copyStreamError}`); + socket.emit(`runner-done-${runid}`); + }, + async ensureOpened(conid, database) { const existing = this.opened.find(x => x.conid == conid && x.database == database); if (existing) return existing; @@ -177,7 +184,13 @@ module.exports = { const { msgtype } = message; if (handleProcessCommunication(message, subprocess)) return; if (newOpened.disconnected) return; - this[`handle_${msgtype}`](conid, database, message); + const funcName = `handle_${msgtype}`; + if (!this[funcName]) { + logger.error(`Unknown message type ${msgtype} from subprocess databaseConnectionProcess`); + return; + } + + this[funcName](conid, database, message); }); subprocess.on('exit', () => { if (newOpened.disconnected) return; diff --git a/packages/api/src/shell/copyStream.js b/packages/api/src/shell/copyStream.js index 6e3c1aa59..152d45b80 100644 --- a/packages/api/src/shell/copyStream.js +++ b/packages/api/src/shell/copyStream.js @@ -69,6 +69,7 @@ async function copyStream(input, output, options) { msgtype: 'copyStreamError', copyStreamError: { message: extractErrorMessage(err), + progressName, ...err, }, }); diff --git a/packages/web/src/tabs/ImportExportTab.svelte b/packages/web/src/tabs/ImportExportTab.svelte index 00e2077c8..1b167a93b 100644 --- a/packages/web/src/tabs/ImportExportTab.svelte +++ b/packages/web/src/tabs/ImportExportTab.svelte @@ -169,7 +169,7 @@ const handleGenerateScript = async e => { const values = $formValues as any; - const code = await createImpExpScript($extensions, values, 'script', true); + const code = await createImpExpScript($extensions, values, 'script', false); openNewTab( { title: 'Shell #',