sql generator in connection process

This commit is contained in:
Jan Prochazka
2021-03-27 20:14:39 +01:00
parent d45fbcb8c8
commit 9d84c0f213
3 changed files with 26 additions and 2 deletions

View File

@@ -34,7 +34,7 @@ module.exports = {
socket.emitChanged(`database-status-changed-${conid}-${database}`);
},
handle_ping() {},
handle_ping() { },
async ensureOpened(conid, database) {
const existing = this.opened.find(x => x.conid == conid && x.database == database);
@@ -153,6 +153,17 @@ module.exports = {
// };
},
sqlPreview_meta: 'post',
async sqlPreview({ conid, database, objects, options }) {
// wait for structure
await this.structure({ conid, database })
const opened = await this.ensureOpened(conid, database);
const res = await this.sendRequest(opened, { msgtype: 'sqlPreview', objects, options });
return res.sql;
},
// runCommand_meta: 'post',
// async runCommand({ conid, database, sql }) {
// console.log(`Running SQL command , conid=${conid}, database=${database}, sql=${sql}`);

View File

@@ -3,6 +3,7 @@ const childProcessChecker = require('../utility/childProcessChecker');
const requireEngineDriver = require('../utility/requireEngineDriver');
const connectUtility = require('../utility/connectUtility');
const { handleProcessCommunication } = require('../utility/processComm');
const { SqlGenerator } = require('dbgate-tools')
let systemConnection;
let storedConnection;
@@ -93,6 +94,17 @@ async function handleQueryData({ msgid, sql }) {
}
}
async function handleSqlPreview({ msgid, objects, options }) {
await waitConnected();
const driver = requireEngineDriver(storedConnection);
const dmp = driver.createDumper();
const generator = new SqlGenerator(analysedStructure, options, objects, dmp);
await generator.dump();
process.send({ msgtype: 'response', msgid, sql: dmp.s });
}
// async function handleRunCommand({ msgid, sql }) {
// await waitConnected();
// const driver = engines(storedConnection);
@@ -107,6 +119,7 @@ function handlePing() {
const messageHandlers = {
connect: handleConnect,
queryData: handleQueryData,
sqlPreview: handleSqlPreview,
ping: handlePing,
// runCommand: handleRunCommand,
};