mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 12:03:58 +00:00
deploy: ignoreNameRegex
This commit is contained in:
@@ -10,6 +10,7 @@ async function deployDb({
|
||||
loadedDbModel,
|
||||
modelTransforms,
|
||||
dbdiffOptionsExtra,
|
||||
ignoreNameRegex = '',
|
||||
}) {
|
||||
const { sql } = await generateDeploySql({
|
||||
connection,
|
||||
@@ -20,6 +21,7 @@ async function deployDb({
|
||||
loadedDbModel,
|
||||
modelTransforms,
|
||||
dbdiffOptionsExtra,
|
||||
ignoreNameRegex,
|
||||
});
|
||||
// console.log('RUNNING DEPLOY SCRIPT:', sql);
|
||||
await executeQuery({ connection, systemConnection, driver, sql, logScriptItems: true });
|
||||
|
||||
@@ -6,6 +6,7 @@ const {
|
||||
extendDatabaseInfo,
|
||||
modelCompareDbDiffOptions,
|
||||
enrichWithPreloadedRows,
|
||||
skipNamesInStructureByRegex,
|
||||
} = require('dbgate-tools');
|
||||
const importDbModel = require('../utility/importDbModel');
|
||||
const requireEngineDriver = require('../utility/requireEngineDriver');
|
||||
@@ -20,6 +21,7 @@ async function generateDeploySql({
|
||||
loadedDbModel = undefined,
|
||||
modelTransforms = undefined,
|
||||
dbdiffOptionsExtra = {},
|
||||
ignoreNameRegex = '',
|
||||
}) {
|
||||
if (!driver) driver = requireEngineDriver(connection);
|
||||
|
||||
@@ -30,6 +32,10 @@ async function generateDeploySql({
|
||||
analysedStructure = await driver.analyseFull(dbhan);
|
||||
}
|
||||
|
||||
if (ignoreNameRegex) {
|
||||
analysedStructure = skipNamesInStructureByRegex(analysedStructure, new RegExp(ignoreNameRegex, 'i'));
|
||||
}
|
||||
|
||||
let deployedModelSource = loadedDbModel
|
||||
? databaseInfoFromYamlModel(loadedDbModel)
|
||||
: await importDbModel(modelFolder);
|
||||
|
||||
@@ -203,3 +203,20 @@ export function replaceSchemaInStructure(db: DatabaseInfo, schema: string) {
|
||||
triggers: (db.triggers || []).map(x => ({ ...x, schemaName: schema })),
|
||||
};
|
||||
}
|
||||
|
||||
export function skipNamesInStructureByRegex(db: DatabaseInfo, regex: RegExp) {
|
||||
if (!db) {
|
||||
return db;
|
||||
}
|
||||
|
||||
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)),
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user