createDb, dropDb - catch errors

This commit is contained in:
Jan Prochazka
2024-08-29 19:50:46 +02:00
parent 967daf3bb6
commit b747c750e8
3 changed files with 38 additions and 33 deletions

View File

@@ -184,22 +184,29 @@ module.exports = {
return { status: 'ok' }; return { status: 'ok' };
}, },
createDatabase_meta: true, async sendDatabaseOp({ conid, msgtype, name }, req) {
async createDatabase({ conid, name }, req) {
testConnectionPermission(conid, req); testConnectionPermission(conid, req);
const opened = await this.ensureOpened(conid); const opened = await this.ensureOpened(conid);
if (opened.connection.isReadOnly) return false; if (opened.connection.isReadOnly) return false;
opened.subprocess.send({ msgtype: 'createDatabase', name }); const res = await this.sendRequest(opened, { msgtype, name });
return { status: 'ok' }; if (res.errorMessage) {
console.error(res.errorMessage);
return {
apiErrorMessage: res.errorMessage,
};
}
return res.result || null;
},
createDatabase_meta: true,
async createDatabase({ conid, name }, req) {
return this.sendDatabaseOp({ conid, msgtype: 'createDatabase', name }, req);
}, },
dropDatabase_meta: true, dropDatabase_meta: true,
async dropDatabase({ conid, name }, req) { async dropDatabase({ conid, name }, req) {
testConnectionPermission(conid, req); return this.sendDatabaseOp({ conid, msgtype: 'dropDatabase', name }, req);
const opened = await this.ensureOpened(conid);
if (opened.connection.isReadOnly) return false;
opened.subprocess.send({ msgtype: 'dropDatabase', name });
return { status: 'ok' };
}, },
sendRequest(conn, message) { sendRequest(conn, message) {

View File

@@ -105,7 +105,8 @@ function handlePing() {
lastPing = new Date().getTime(); lastPing = new Date().getTime();
} }
async function handleDatabaseOp(op, { name }) { async function handleDatabaseOp(op, { msgid, name }) {
try {
const driver = requireEngineDriver(storedConnection); const driver = requireEngineDriver(storedConnection);
systemConnection = await connectUtility(driver, storedConnection, 'app'); systemConnection = await connectUtility(driver, storedConnection, 'app');
if (driver[op]) { if (driver[op]) {
@@ -117,6 +118,11 @@ async function handleDatabaseOp(op, { name }) {
await driver.query(systemConnection, dmp.s); await driver.query(systemConnection, dmp.s);
} }
await handleRefresh(); await handleRefresh();
process.send({ msgtype: 'response', msgid, status: 'ok' });
} catch (err) {
process.send({ msgtype: 'response', msgid, errorMessage: err.message });
}
} }
async function handleDriverDataCore(msgid, callMethod) { async function handleDriverDataCore(msgid, callMethod) {

View File

@@ -96,18 +96,10 @@ const driver = {
columns: [], columns: [],
}; };
} }
try {
//console.log('sql3', sql);
const res = await client.execute(sql); const res = await client.execute(sql);
//console.log('res', res);
const columns = extractOracleColumns(res.metaData); const columns = extractOracleColumns(res.metaData);
//console.log('columns', columns);
return { rows: (res.rows || []).map(row => zipDataRow(row, columns)), columns }; return { rows: (res.rows || []).map(row => zipDataRow(row, columns)), columns };
} catch (err) {
console.log('Error query', err, sql);
} finally {
//console.log('finally', sql);
}
}, },
stream(client, sql, options) { stream(client, sql, options) {
/* /*