rename view/procedure/function

This commit is contained in:
SPRINX0\prochazka
2024-11-19 12:18:56 +01:00
parent 8328fdad33
commit e33f3a1492
4 changed files with 43 additions and 16 deletions

View File

@@ -44,15 +44,16 @@ async function generateDeploySql({
analysedStructure = await driver.analyseFull(dbhan);
}
if (ignoreNameRegex) {
analysedStructure = skipNamesInStructureByRegex(analysedStructure, new RegExp(ignoreNameRegex, 'i'));
}
analysedStructure = skipDbGateInternalObjects(analysedStructure);
let deployedModelSource = loadedDbModel
? databaseInfoFromYamlModel(loadedDbModel)
: 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 || []) {
deployedModelSource = transform(deployedModelSource);
}

View File

@@ -748,6 +748,8 @@ export function createAlterDatabasePlan(
plan.recreates.sqlObjects += 1;
plan.dropSqlObject(oldobj);
plan.createSqlObject(newobj);
} else if (!testEqualFullNames(oldobj, newobj, opts)) {
plan.renameSqlObject(oldobj, newobj.pureName);
}
}
}

View File

@@ -219,13 +219,13 @@ export function skipNamesInStructureByRegex(db: DatabaseInfo, regex: RegExp) {
return {
...db,
tables: (db.tables || []).filter(tbl => !regex.test(tbl.pureName)),
views: (db.views || []).filter(tbl => !regex.test(tbl.pureName)),
collections: (db.collections || []).filter(tbl => !regex.test(tbl.pureName)),
matviews: (db.matviews || []).filter(tbl => !regex.test(tbl.pureName)),
procedures: (db.procedures || []).filter(tbl => !regex.test(tbl.pureName)),
functions: (db.functions || []).filter(tbl => !regex.test(tbl.pureName)),
triggers: (db.triggers || []).filter(tbl => !regex.test(tbl.pureName)),
tables: (db.tables || []).filter(x => !regex.test(x.pureName)),
views: (db.views || []).filter(x => !regex.test(x.pureName)),
collections: (db.collections || []).filter(x => !regex.test(x.pureName)),
matviews: (db.matviews || []).filter(x => !regex.test(x.pureName)),
procedures: (db.procedures || []).filter(x => !regex.test(x.pureName)),
functions: (db.functions || []).filter(x => !regex.test(x.pureName)),
triggers: (db.triggers || []).filter(x => !regex.test(x.pureName)),
};
}

View File

@@ -197,9 +197,15 @@
forceNewTab: true,
icon: 'img perspective',
},
{
hasPermission('dbops/model/edit') && {
label: 'Drop view',
isDrop: true,
requiresWriteAccess: true,
},
hasPermission('dbops/model/edit') && {
label: 'Rename view',
isRename: true,
requiresWriteAccess: true,
},
{
divider: true,
@@ -256,9 +262,15 @@
label: 'Open structure',
tab: 'TableStructureTab',
},
{
hasPermission('dbops/model/edit') && {
label: 'Drop view',
isDrop: true,
requiresWriteAccess: true,
},
hasPermission('dbops/model/edit') && {
label: 'Rename view',
isRename: true,
requiresWriteAccess: true,
},
{
label: 'Query designer',
@@ -318,9 +330,15 @@
];
case 'procedures':
return [
{
hasPermission('dbops/model/edit') && {
label: 'Drop procedure',
isDrop: true,
requiresWriteAccess: true,
},
hasPermission('dbops/model/edit') && {
label: 'Rename procedure',
isRename: true,
requiresWriteAccess: true,
},
{
label: 'SQL: CREATE PROCEDURE',
@@ -349,9 +367,15 @@
];
case 'functions':
return [
{
hasPermission('dbops/model/edit') && {
label: 'Drop function',
isDrop: true,
requiresWriteAccess: true,
},
hasPermission('dbops/model/edit') && {
label: 'Rename function',
isRename: true,
requiresWriteAccess: true,
},
{
label: 'SQL: CREATE FUNCTION',