mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-28 17:36:00 +00:00
rename view/procedure/function
This commit is contained in:
@@ -44,15 +44,16 @@ async function generateDeploySql({
|
|||||||
analysedStructure = await driver.analyseFull(dbhan);
|
analysedStructure = await driver.analyseFull(dbhan);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ignoreNameRegex) {
|
|
||||||
analysedStructure = skipNamesInStructureByRegex(analysedStructure, new RegExp(ignoreNameRegex, 'i'));
|
|
||||||
}
|
|
||||||
analysedStructure = skipDbGateInternalObjects(analysedStructure);
|
|
||||||
|
|
||||||
let deployedModelSource = loadedDbModel
|
let deployedModelSource = loadedDbModel
|
||||||
? databaseInfoFromYamlModel(loadedDbModel)
|
? databaseInfoFromYamlModel(loadedDbModel)
|
||||||
: await importDbModel(modelFolder);
|
: await importDbModel(modelFolder);
|
||||||
|
|
||||||
|
if (ignoreNameRegex) {
|
||||||
|
analysedStructure = skipNamesInStructureByRegex(analysedStructure, new RegExp(ignoreNameRegex, 'i'));
|
||||||
|
deployedModelSource = skipNamesInStructureByRegex(deployedModelSource, new RegExp(ignoreNameRegex, 'i'));
|
||||||
|
}
|
||||||
|
analysedStructure = skipDbGateInternalObjects(analysedStructure);
|
||||||
|
|
||||||
for (const transform of modelTransforms || []) {
|
for (const transform of modelTransforms || []) {
|
||||||
deployedModelSource = transform(deployedModelSource);
|
deployedModelSource = transform(deployedModelSource);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -748,6 +748,8 @@ export function createAlterDatabasePlan(
|
|||||||
plan.recreates.sqlObjects += 1;
|
plan.recreates.sqlObjects += 1;
|
||||||
plan.dropSqlObject(oldobj);
|
plan.dropSqlObject(oldobj);
|
||||||
plan.createSqlObject(newobj);
|
plan.createSqlObject(newobj);
|
||||||
|
} else if (!testEqualFullNames(oldobj, newobj, opts)) {
|
||||||
|
plan.renameSqlObject(oldobj, newobj.pureName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,13 +219,13 @@ export function skipNamesInStructureByRegex(db: DatabaseInfo, regex: RegExp) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
...db,
|
...db,
|
||||||
tables: (db.tables || []).filter(tbl => !regex.test(tbl.pureName)),
|
tables: (db.tables || []).filter(x => !regex.test(x.pureName)),
|
||||||
views: (db.views || []).filter(tbl => !regex.test(tbl.pureName)),
|
views: (db.views || []).filter(x => !regex.test(x.pureName)),
|
||||||
collections: (db.collections || []).filter(tbl => !regex.test(tbl.pureName)),
|
collections: (db.collections || []).filter(x => !regex.test(x.pureName)),
|
||||||
matviews: (db.matviews || []).filter(tbl => !regex.test(tbl.pureName)),
|
matviews: (db.matviews || []).filter(x => !regex.test(x.pureName)),
|
||||||
procedures: (db.procedures || []).filter(tbl => !regex.test(tbl.pureName)),
|
procedures: (db.procedures || []).filter(x => !regex.test(x.pureName)),
|
||||||
functions: (db.functions || []).filter(tbl => !regex.test(tbl.pureName)),
|
functions: (db.functions || []).filter(x => !regex.test(x.pureName)),
|
||||||
triggers: (db.triggers || []).filter(tbl => !regex.test(tbl.pureName)),
|
triggers: (db.triggers || []).filter(x => !regex.test(x.pureName)),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -197,9 +197,15 @@
|
|||||||
forceNewTab: true,
|
forceNewTab: true,
|
||||||
icon: 'img perspective',
|
icon: 'img perspective',
|
||||||
},
|
},
|
||||||
{
|
hasPermission('dbops/model/edit') && {
|
||||||
label: 'Drop view',
|
label: 'Drop view',
|
||||||
isDrop: true,
|
isDrop: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
|
},
|
||||||
|
hasPermission('dbops/model/edit') && {
|
||||||
|
label: 'Rename view',
|
||||||
|
isRename: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
divider: true,
|
divider: true,
|
||||||
@@ -256,9 +262,15 @@
|
|||||||
label: 'Open structure',
|
label: 'Open structure',
|
||||||
tab: 'TableStructureTab',
|
tab: 'TableStructureTab',
|
||||||
},
|
},
|
||||||
{
|
hasPermission('dbops/model/edit') && {
|
||||||
label: 'Drop view',
|
label: 'Drop view',
|
||||||
isDrop: true,
|
isDrop: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
|
},
|
||||||
|
hasPermission('dbops/model/edit') && {
|
||||||
|
label: 'Rename view',
|
||||||
|
isRename: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Query designer',
|
label: 'Query designer',
|
||||||
@@ -318,9 +330,15 @@
|
|||||||
];
|
];
|
||||||
case 'procedures':
|
case 'procedures':
|
||||||
return [
|
return [
|
||||||
{
|
hasPermission('dbops/model/edit') && {
|
||||||
label: 'Drop procedure',
|
label: 'Drop procedure',
|
||||||
isDrop: true,
|
isDrop: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
|
},
|
||||||
|
hasPermission('dbops/model/edit') && {
|
||||||
|
label: 'Rename procedure',
|
||||||
|
isRename: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'SQL: CREATE PROCEDURE',
|
label: 'SQL: CREATE PROCEDURE',
|
||||||
@@ -349,9 +367,15 @@
|
|||||||
];
|
];
|
||||||
case 'functions':
|
case 'functions':
|
||||||
return [
|
return [
|
||||||
{
|
hasPermission('dbops/model/edit') && {
|
||||||
label: 'Drop function',
|
label: 'Drop function',
|
||||||
isDrop: true,
|
isDrop: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
|
},
|
||||||
|
hasPermission('dbops/model/edit') && {
|
||||||
|
label: 'Rename function',
|
||||||
|
isRename: true,
|
||||||
|
requiresWriteAccess: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'SQL: CREATE FUNCTION',
|
label: 'SQL: CREATE FUNCTION',
|
||||||
|
|||||||
Reference in New Issue
Block a user