Skip to content

Commit

Permalink
fix(backup): missing PATH env for mongo dump/restore
Browse files Browse the repository at this point in the history
  • Loading branch information
polonel committed Jan 14, 2020
1 parent 9ef47fc commit fd7321a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 11 deletions.
15 changes: 13 additions & 2 deletions src/backup/backup.js
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand All @@ -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]
Expand Down
16 changes: 9 additions & 7 deletions src/backup/restore.js
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}
})
}
Expand Down
5 changes: 3 additions & 2 deletions src/controllers/backuprestore.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 })

Expand Down Expand Up @@ -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 })
Expand Down

0 comments on commit fd7321a

Please sign in to comment.