maxMissingTablesRatio parameter

This commit is contained in:
SPRINX0\prochazka
2024-11-19 12:55:42 +01:00
parent c88114cabe
commit a80e37a208
3 changed files with 21 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ async function deployDb({
dbdiffOptionsExtra,
ignoreNameRegex = '',
targetSchema = null,
maxMissingTablesRatio = undefined,
}) {
if (!driver) driver = requireEngineDriver(connection);
const dbhan = systemConnection || (await connectUtility(driver, connection, 'read'));
@@ -41,6 +42,7 @@ async function deployDb({
dbdiffOptionsExtra,
ignoreNameRegex,
targetSchema,
maxMissingTablesRatio,
});
// console.log('RUNNING DEPLOY SCRIPT:', sql);
await executeQuery({ connection, systemConnection: dbhan, driver, sql, logScriptItems: true });

View File

@@ -26,6 +26,7 @@ async function generateDeploySql({
dbdiffOptionsExtra = {},
ignoreNameRegex = '',
targetSchema = null,
maxMissingTablesRatio = undefined,
}) {
if (!driver) driver = requireEngineDriver(connection);
@@ -80,6 +81,17 @@ async function generateDeploySql({
const currentModelPaired = matchPairedObjects(deployedModel, currentModel, opts);
const currentModelPairedPreloaded = await enrichWithPreloadedRows(deployedModel, currentModelPaired, dbhan, driver);
if (maxMissingTablesRatio != null) {
const missingTables = currentModelPaired.tables.filter(
x => !deployedModel.tables.find(y => y.pairingId == x.pairingId)
);
const missingTableCount = missingTables.length;
const missingTablesRatio = missingTableCount / (currentModelPaired.tables.length || 1);
if (missingTablesRatio > maxMissingTablesRatio) {
throw new Error(`Too many missing tables (${missingTablesRatio * 100}%), aborting deploy`);
}
}
// console.log('currentModelPairedPreloaded', currentModelPairedPreloaded.tables[0]);
// console.log('deployedModel', deployedModel.tables[0]);
// console.log('currentModel', currentModel.tables[0]);