diff --git a/packages/api/src/controllers/databaseConnections.js b/packages/api/src/controllers/databaseConnections.js index f8c49c345..6d5d78868 100644 --- a/packages/api/src/controllers/databaseConnections.js +++ b/packages/api/src/controllers/databaseConnections.js @@ -80,7 +80,7 @@ module.exports = { msgtype: 'connect', connection: { ...connection, database }, structure: lastClosed ? lastClosed.structure : null, - globalSettings: config.settingsValue + globalSettings: config.settingsValue, }); return newOpened; }, @@ -149,8 +149,8 @@ module.exports = { }, refresh_meta: 'post', - async refresh({ conid, database }) { - this.close(conid, database); + async refresh({ conid, database, keepOpen }) { + if (!keepOpen) this.close(conid, database); await this.ensureOpened(conid, database); return { status: 'ok' }; @@ -173,6 +173,12 @@ module.exports = { } }, + disconnect_meta: 'post', + async disconnect({ conid, database }) { + await this.close(conid, database, true); + return { status: 'ok' }; + }, + structure_meta: 'get', async structure({ conid, database }) { const opened = await this.ensureOpened(conid, database); diff --git a/packages/api/src/controllers/serverConnections.js b/packages/api/src/controllers/serverConnections.js index e9d253298..5ae4aa816 100644 --- a/packages/api/src/controllers/serverConnections.js +++ b/packages/api/src/controllers/serverConnections.js @@ -86,6 +86,12 @@ module.exports = { } }, + disconnect_meta: 'post', + async disconnect({ conid }) { + await this.close(conid, true); + return { status: 'ok' }; + }, + listDatabases_meta: 'get', async listDatabases({ conid }) { const opened = await this.ensureOpened(conid); @@ -123,8 +129,8 @@ module.exports = { }, refresh_meta: 'post', - async refresh({ conid }) { - this.close(conid); + async refresh({ conid, keepOpen }) { + if (!keepOpen) this.close(conid); await this.ensureOpened(conid); return { status: 'ok' }; diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte index 947e5640c..a25b00e3d 100644 --- a/packages/web/src/appobj/ConnectionAppObject.svelte +++ b/packages/web/src/appobj/ConnectionAppObject.svelte @@ -1,14 +1,65 @@ + + - - @@ -61,12 +72,14 @@ import SqlGeneratorModal from '../modals/SqlGeneratorModal.svelte'; import { getDefaultFileFormat } from '../plugins/fileformats'; import { currentDatabase, extensions } from '../stores'; + import axiosInstance from '../utility/axiosInstance'; + import getElectron from '../utility/getElectron'; import openNewTab from '../utility/openNewTab'; import AppObjectCore from './AppObjectCore.svelte'; export let data; function createMenu() { - return getDatabaseMenuItems(data.connection, data.name, $extensions); + return getDatabaseMenuItems(data.connection, data.name, $extensions, $currentDatabase); } diff --git a/plugins/dbgate-plugin-sqlite/src/backend/Analyser.js b/plugins/dbgate-plugin-sqlite/src/backend/Analyser.js index 65ffe60fd..0aef5dd2b 100644 --- a/plugins/dbgate-plugin-sqlite/src/backend/Analyser.js +++ b/plugins/dbgate-plugin-sqlite/src/backend/Analyser.js @@ -8,7 +8,7 @@ class Analyser extends DatabaseAnalyser { async _runAnalysis() { const tables = await this.driver.query(this.pool, "select * from sqlite_master where type='table'"); - console.log('TABLES', tables); + // console.log('TABLES', tables); const tableSqls = _.zipObject( tables.rows.map((x) => x.name), diff --git a/plugins/dbgate-plugin-sqlite/src/backend/driver.js b/plugins/dbgate-plugin-sqlite/src/backend/driver.js index a70669dd4..59f094fe8 100644 --- a/plugins/dbgate-plugin-sqlite/src/backend/driver.js +++ b/plugins/dbgate-plugin-sqlite/src/backend/driver.js @@ -15,6 +15,7 @@ const driver = { }, // @ts-ignore async query(pool, sql) { + console.log('SQLITE SQL', sql); const stmt = pool.prepare(sql); // stmt.raw(); const columns = stmt.columns();