mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-29 08:43:57 +00:00
drop sql object ctx menu
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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',
|
||||||
|
|||||||
Reference in New Issue
Block a user