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 = '') { diff --git a/shared/mongoDbClient.js b/shared/mongoDbClient.js index d74b0fe..6028592 100644 --- a/shared/mongoDbClient.js +++ b/shared/mongoDbClient.js @@ -222,17 +222,24 @@ const createConnection = ({ connection }) => { }); }; + 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) => { 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')) { + return getCountByDirectCommand({ db, collectionName }).then(resolve).catch(reject); + } + + return reject(getError(err)); }); }); };