diff --git a/src/backup/backup.js b/src/backup/backup.js index 500ba5b69..9180c13f5 100644 --- a/src/backup/backup.js +++ b/src/backup/backup.js @@ -96,8 +96,14 @@ function runBackup (callback) { mongodumpExec = path.join(__dirname, 'bin/win32/mongodump') } - var options = ['--uri', CONNECTION_URI, '--out', path.join(__dirname, '../../backups/dump/database/')] - var mongodump = spawn(mongodumpExec, options) + var options = [ + '--uri', + CONNECTION_URI, + '--forceTableScan', + '--out', + path.join(__dirname, '../../backups/dump/database/') + ] + var mongodump = spawn(mongodumpExec, options, { env: { PATH: process.env.PATH } }) mongodump.stdout.on('data', function (data) { winston.debug(data.toString()) @@ -107,6 +113,11 @@ function runBackup (callback) { winston.debug(data.toString()) }) + mongodump.on('error', function (err) { + winston.error(err) + return callback(err.message) + }) + mongodump.on('exit', function (code) { if (code === 0) { var dbName = fs.readdirSync(path.join(__dirname, '../../backups/dump/database'))[0] diff --git a/src/backup/restore.js b/src/backup/restore.js index 838674f7e..367a57f6e 100644 --- a/src/backup/restore.js +++ b/src/backup/restore.js @@ -117,26 +117,28 @@ function runRestore (file, callback) { path.join(__dirname, '../../restores/restore_' + file, 'database', dbName), '--noIndexRestore' ] - var mongodump = null + var mongorestore = null if (platform === 'win32') { - mongodump = spawn(path.join(__dirname, 'bin', platform, 'mongorestore'), options) + mongorestore = spawn(path.join(__dirname, 'bin', platform, 'mongorestore'), options, { + env: { PATH: process.env.PATH } + }) } else { - mongodump = spawn('mongorestore', options) + mongorestore = spawn('mongorestore', options, { env: { PATH: process.env.PATH } }) } - mongodump.stdout.on('data', function (data) { + mongorestore.stdout.on('data', function (data) { winston.debug(data.toString()) }) - mongodump.stderr.on('data', function (data) { + mongorestore.stderr.on('data', function (data) { winston.debug(data.toString()) }) - mongodump.on('exit', function (code) { + mongorestore.on('exit', function (code) { if (code === 0) { callback(null, 'done') } else { - callback(new Error('MongoDump falied with code ' + code)) + callback(new Error('mongorestore falied with code ' + code)) } }) } diff --git a/src/controllers/backuprestore.js b/src/controllers/backuprestore.js index 8a8a5c227..0fd729131 100644 --- a/src/controllers/backuprestore.js +++ b/src/controllers/backuprestore.js @@ -69,7 +69,7 @@ backupRestore.getBackups = function (req, res) { backupRestore.runBackup = function (req, res) { var database = require('../database') var child = require('child_process').fork(path.join(__dirname, '../../src/backup/backup'), { - env: { FORK: 1, NODE_ENV: global.env, MONGOURI: database.connectionuri } + env: { FORK: 1, NODE_ENV: global.env, MONGOURI: database.connectionuri, PATH: process.env.PATH } }) global.forks.push({ name: 'backup', fork: child }) @@ -139,7 +139,8 @@ backupRestore.restoreBackup = function (req, res) { FORK: 1, NODE_ENV: global.env, MONGOURI: database.connectionuri, - FILE: file + FILE: file, + PATH: process.env.PATH } }) global.forks.push({ name: 'restore', fork: child })