From 2aad3545edc4007c17047c82ca9c8a5ee69fbdc8 Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 27 Mar 2025 16:50:46 +0200 Subject: [PATCH 1/3] chore: improve connection info logging --- forward_engineering/helpers/applyToInstanceHelper.js | 2 +- reverse_engineering/api.js | 4 ++-- shared/logHelper.js | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/forward_engineering/helpers/applyToInstanceHelper.js b/forward_engineering/helpers/applyToInstanceHelper.js index 729f752..d4de3cc 100644 --- a/forward_engineering/helpers/applyToInstanceHelper.js +++ b/forward_engineering/helpers/applyToInstanceHelper.js @@ -54,7 +54,7 @@ const applyToInstanceHelper = { try { logger.clear(); log.info(getSystemInfo(connectionInfo.appVersion)); - log.info(connectionInfo); + log.info(connectionInfo, 'connectionInfo'); await connectionHelper.connect(connectionInfo, sshService); connectionHelper.close(sshService); diff --git a/reverse_engineering/api.js b/reverse_engineering/api.js index 41de592..cbffd3c 100644 --- a/reverse_engineering/api.js +++ b/reverse_engineering/api.js @@ -22,7 +22,7 @@ module.exports = { try { logger.clear(); log.info(getSystemInfo(connectionInfo.appVersion)); - log.info(connectionInfo); + log.info(connectionInfo, 'connectionInfo'); await connectionHelper.connect(connectionInfo, sshService); @@ -58,7 +58,7 @@ module.exports = { logger.clear(); log.info(getSystemInfo(connectionInfo.appVersion)); - log.info(connectionInfo); + log.info(connectionInfo, 'connectionInfo'); const includeSystemCollection = connectionInfo.includeSystemCollection; const connection = await connectionHelper.connect(connectionInfo, sshService); diff --git a/shared/logHelper.js b/shared/logHelper.js index afd48b6..a2bfe66 100644 --- a/shared/logHelper.js +++ b/shared/logHelper.js @@ -45,8 +45,8 @@ const toTime = number => { const createLogger = ({ title, logger, hiddenKeys }) => { return { - info(message) { - logger.log('info', { message }, title, hiddenKeys); + info(message, infoTitle) { + logger.log('info', message, infoTitle || title, hiddenKeys); }, progress(message, dbName = '', tableName = '') { From 6a62ee55d730874e55234a1cd40e069790774be6 Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 27 Mar 2025 16:51:35 +0200 Subject: [PATCH 2/3] fix: handle unsupported pipeline of getting documents count on aws --- shared/mongoDbClient.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/shared/mongoDbClient.js b/shared/mongoDbClient.js index d74b0fe..24b8a9b 100644 --- a/shared/mongoDbClient.js +++ b/shared/mongoDbClient.js @@ -222,17 +222,29 @@ const createConnection = ({ connection }) => { }); }; + const getCountByDirectCommand = ({ db, collectionName, scale = 1000000 }) => { + return new Promise((resolve, reject) => { + db.command({ collStats: collectionName, scale }) + .then(resolve) + .catch(err => reject(getError(err))); + }); + }; + const getCount = (dbName, collectionName) => { return new Promise((resolve, reject) => { const db = connection.db(dbName); const collection = db.collection(collectionName); collection.estimatedDocumentCount((err, count) => { - if (err) { - return reject(getError(err)); - } else { + if (!err) { return resolve(count); } + + if (err.message.includes('Unrecognized pipeline stage name: $collStats')) { + resolve(getCountByDirectCommand({ db, collectionName })); + } + + return reject(getError(err)); }); }); }; From d94d32dbde52c904e552ee0fb5fbcaa3805b2ccc Mon Sep 17 00:00:00 2001 From: chulanovskyi Date: Thu, 27 Mar 2025 17:48:59 +0200 Subject: [PATCH 3/3] chore: removed redundant nested promise --- shared/mongoDbClient.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/shared/mongoDbClient.js b/shared/mongoDbClient.js index 24b8a9b..6028592 100644 --- a/shared/mongoDbClient.js +++ b/shared/mongoDbClient.js @@ -222,13 +222,8 @@ const createConnection = ({ connection }) => { }); }; - const getCountByDirectCommand = ({ db, collectionName, scale = 1000000 }) => { - return new Promise((resolve, reject) => { - db.command({ collStats: collectionName, scale }) - .then(resolve) - .catch(err => reject(getError(err))); - }); - }; + const getCountByDirectCommand = ({ db, collectionName, scale = 1000000 }) => + db.command({ collStats: collectionName, scale }).catch(err => Promise.reject(getError(err))); const getCount = (dbName, collectionName) => { return new Promise((resolve, reject) => { @@ -241,7 +236,7 @@ const createConnection = ({ connection }) => { } if (err.message.includes('Unrecognized pipeline stage name: $collStats')) { - resolve(getCountByDirectCommand({ db, collectionName })); + return getCountByDirectCommand({ db, collectionName }).then(resolve).catch(reject); } return reject(getError(err));