mailtrain/setup/sql/drop.js

45 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-04-20 17:17:53 +00:00
'use strict';
if (process.env.NODE_ENV === 'production') {
console.log('This script does not run in production'); // eslint-disable-line no-console
process.exit(1);
}
2016-04-20 17:17:53 +00:00
let config = require('config');
let spawn = require('child_process').spawn;
let log = require('npmlog');
let path = require('path');
log.level = 'verbose';
function createDump(callback) {
let cmd = spawn(path.join(__dirname, 'drop.sh'), [], {
env: {
MYSQL_HOST: config.mysql.host || 'localhost',
MYSQL_DB: config.mysql.database,
MYSQL_PORT: config.mysql.port || 3306,
MYSQL_USER: config.mysql.user,
MYSQL_PASSWORD: config.mysql.password
}
});
cmd.stdout.pipe(process.stdout);
cmd.stderr.pipe(process.stderr);
cmd.on('close', code => {
if (code) {
return callback(new Error('drop command exited with code ' + code));
}
return callback(null, true);
});
}
createDump(err => {
if (err) {
log.error('sqldrop', err);
process.exit(1);
}
log.info('sqldrop', 'Command completed, all tables dropped from "%s"', config.mysql.database);
process.exit(0);
});