mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-26 11:05:58 +00:00
sql generator
This commit is contained in:
@@ -65,6 +65,27 @@
|
|||||||
label: 'SQL: SELECT',
|
label: 'SQL: SELECT',
|
||||||
sqlTemplate: 'SELECT',
|
sqlTemplate: 'SELECT',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: CREATE TABLE',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
createTables: true,
|
||||||
|
createIndexes: true,
|
||||||
|
createForeignKeys: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: DROP TABLE',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
dropTables: true,
|
||||||
|
dropReferences: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: INSERT',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
insert: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
views: [
|
views: [
|
||||||
{
|
{
|
||||||
@@ -110,6 +131,18 @@
|
|||||||
label: 'SQL: SELECT',
|
label: 'SQL: SELECT',
|
||||||
sqlTemplate: 'SELECT',
|
sqlTemplate: 'SELECT',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: CREATE VIEW',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
createViews: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: DROP VIEW',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
dropViews: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
procedures: [
|
procedures: [
|
||||||
{
|
{
|
||||||
@@ -120,12 +153,36 @@
|
|||||||
label: 'SQL: EXECUTE',
|
label: 'SQL: EXECUTE',
|
||||||
sqlTemplate: 'EXECUTE PROCEDURE',
|
sqlTemplate: 'EXECUTE PROCEDURE',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: CREATE PROCEDURE',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
createProcedures: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: DROP PROCEDURE',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
dropProcedures: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
functions: [
|
functions: [
|
||||||
{
|
{
|
||||||
label: 'SQL: CREATE FUNCTION',
|
label: 'SQL: CREATE FUNCTION',
|
||||||
sqlTemplate: 'CREATE OBJECT',
|
sqlTemplate: 'CREATE OBJECT',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: CREATE FUNCTION',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
createFunctions: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'SQL Generator: DROP FUNCTION',
|
||||||
|
sqlGeneratorProps: {
|
||||||
|
dropFunctions: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -175,6 +232,7 @@
|
|||||||
import { showModal } from '../modals/modalTools';
|
import { showModal } from '../modals/modalTools';
|
||||||
import { findEngineDriver } from 'dbgate-tools';
|
import { findEngineDriver } from 'dbgate-tools';
|
||||||
import uuidv1 from 'uuid/v1';
|
import uuidv1 from 'uuid/v1';
|
||||||
|
import SqlGeneratorModal from '../modals/SqlGeneratorModal.svelte';
|
||||||
|
|
||||||
export let data;
|
export let data;
|
||||||
|
|
||||||
@@ -298,6 +356,13 @@
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
} else if (menu.sqlGeneratorProps) {
|
||||||
|
showModal(SqlGeneratorModal, {
|
||||||
|
initialObjects: [data],
|
||||||
|
initialConfig: menu.sqlGeneratorProps,
|
||||||
|
conid: data.conid,
|
||||||
|
database: data.database,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
openDatabaseObjectDetail(menu.tab, menu.sqlTemplate, data, menu.forceNewTab, menu.initialData);
|
openDatabaseObjectDetail(menu.tab, menu.sqlTemplate, data, menu.forceNewTab, menu.initialData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@
|
|||||||
import ModalBase from './ModalBase.svelte';
|
import ModalBase from './ModalBase.svelte';
|
||||||
import { closeCurrentModal } from './modalTools';
|
import { closeCurrentModal } from './modalTools';
|
||||||
import WidgetTitle from '../widgets/WidgetTitle.svelte';
|
import WidgetTitle from '../widgets/WidgetTitle.svelte';
|
||||||
|
import openNewTab from '../utility/openNewTab';
|
||||||
|
|
||||||
export let conid;
|
export let conid;
|
||||||
export let database;
|
export let database;
|
||||||
@@ -94,6 +95,24 @@
|
|||||||
}
|
}
|
||||||
busy = false;
|
busy = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function editSql() {
|
||||||
|
openNewTab(
|
||||||
|
{
|
||||||
|
title: 'Query #',
|
||||||
|
icon: 'img sql-file',
|
||||||
|
tabComponent: 'QueryTab',
|
||||||
|
props: {
|
||||||
|
conid,
|
||||||
|
database,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
editor: sqlPreview,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
closeCurrentModal();
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<FormProviderCore values={valuesStore} template={FormFieldTemplateTiny}>
|
<FormProviderCore values={valuesStore} template={FormFieldTemplateTiny}>
|
||||||
@@ -187,6 +206,7 @@
|
|||||||
|
|
||||||
<svelte:fragment slot="footer">
|
<svelte:fragment slot="footer">
|
||||||
<div class="flex m-2">
|
<div class="flex m-2">
|
||||||
|
<LargeButton on:click={editSql} icon="icon sql-file">Edit SQL</LargeButton>
|
||||||
<LargeButton on:click={closeCurrentModal} icon="icon close">Close</LargeButton>
|
<LargeButton on:click={closeCurrentModal} icon="icon close">Close</LargeButton>
|
||||||
</div>
|
</div>
|
||||||
</svelte:fragment>
|
</svelte:fragment>
|
||||||
|
|||||||
Reference in New Issue
Block a user