drop sql object ctx menu

This commit is contained in:
Jan Prochazka
2021-09-15 21:15:46 +02:00
parent 39748bdd6c
commit ce85f8f94d
2 changed files with 30 additions and 2 deletions

View File

@@ -1,7 +1,9 @@
import { ColumnInfo, ConstraintInfo, DatabaseInfo, EngineDriver, NamedObjectInfo, TableInfo } from 'dbgate-types'; import { ColumnInfo, ConstraintInfo, DatabaseInfo, EngineDriver, NamedObjectInfo, TableInfo } from 'dbgate-types';
import _ from 'lodash';
import uuidv1 from 'uuid/v1'; import uuidv1 from 'uuid/v1';
import { AlterPlan } from './alterPlan'; import { AlterPlan } from './alterPlan';
import stableStringify from 'json-stable-stringify'; import stableStringify from 'json-stable-stringify';
import { isArray } from 'lodash';
type DbDiffSchemaMode = 'strict' | 'ignore' | 'ignoreImplicit'; type DbDiffSchemaMode = 'strict' | 'ignore' | 'ignoreImplicit';
@@ -44,10 +46,20 @@ export function generateTablePairingId(table: TableInfo): TableInfo {
return table; return table;
} }
function generateObjectPairingId(obj) {
if (obj.objectTypeField)
return {
...obj,
pairingId: obj.pairingId || uuidv1(),
};
return obj;
}
export function generateDbPairingId(db: DatabaseInfo): DatabaseInfo { export function generateDbPairingId(db: DatabaseInfo): DatabaseInfo {
if (!db) return db; if (!db) return db;
// @ts-ignore
return { return {
...db, ..._.mapValues(db, v => (_.isArray(v) ? v.map(generateObjectPairingId) : v)),
tables: (db.tables || []).map(generateTablePairingId), tables: (db.tables || []).map(generateTablePairingId),
}; };
} }
@@ -328,7 +340,7 @@ export function createAlterDatabasePlan(
if (objectTypeField == 'tables') { if (objectTypeField == 'tables') {
if (newobj == null) plan.createTable(newobj); if (newobj == null) plan.createTable(newobj);
} else { } else {
plan.createSqlObject(newobj); if (newobj == null) plan.createSqlObject(newobj);
} }
} }
} }

View File

@@ -114,6 +114,10 @@
label: 'Open structure', label: 'Open structure',
tab: 'TableStructureTab', tab: 'TableStructureTab',
}, },
{
label: 'Drop view',
isDrop: true,
},
{ {
label: 'Query designer', label: 'Query designer',
isQueryDesigner: true, isQueryDesigner: true,
@@ -175,6 +179,10 @@
label: 'Open structure', label: 'Open structure',
tab: 'TableStructureTab', tab: 'TableStructureTab',
}, },
{
label: 'Drop view',
isDrop: true,
},
{ {
label: 'Query designer', label: 'Query designer',
isQueryDesigner: true, isQueryDesigner: true,
@@ -227,6 +235,10 @@
}, },
], ],
procedures: [ procedures: [
{
label: 'Drop procedure',
isDrop: true,
},
{ {
label: 'SQL: CREATE PROCEDURE', label: 'SQL: CREATE PROCEDURE',
scriptTemplate: 'CREATE OBJECT', scriptTemplate: 'CREATE OBJECT',
@@ -249,6 +261,10 @@
}, },
], ],
functions: [ functions: [
{
label: 'Drop function',
isDrop: true,
},
{ {
label: 'SQL: CREATE FUNCTION', label: 'SQL: CREATE FUNCTION',
scriptTemplate: 'CREATE OBJECT', scriptTemplate: 'CREATE OBJECT',