-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdump.js
55 lines (50 loc) · 2.42 KB
/
dump.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//console.log(require('dotenv').config());
var dotenv = require('dotenv').config({path: __dirname + '/.env'})
const { exec } = require('child_process');
// Database connection settings.
let exportFrom = {
exportPath: process.env.DUMPARCHIVIEPATH_EXPORT,
host: process.env.DUMPHOST_EXPORT,
user: process.env.DUMPUSER_EXPORT,
password: process.env.DUMPPASSWORD_EXPORT,
database: process.env.DUMPDATABASE_EXPORT,
pathmysqlcmd: process.env.PATHMYSQLCMD_EXPORT
}
let importTo = {
host: process.env.DUMPHOST_IMPORT,
user: process.env.DUMPUSER_IMPORT,
password: process.env.DUMPPASSWORD_IMPORT,
database: process.env.DUMPDATABASE_IMPORT,
fileDump: process.env.DUMPFILE_IMPORT,
pathMySQLcmd: process.env.PATHMYSQLCMD_IMPORT
}
var myArgs = process.argv.slice(2);
//console.log('myArgs: ', myArgs);
switch (myArgs[0]) {
case '--export':
let dumpFile = exportFrom.exportPath+new Date().getTime() +'_AN_dump.sql';
console.log("Path dump EXPORT: "+dumpFile);
console.log(`Starting exporting data from the ${exportFrom.database} database. Path dump EXPORT: `+dumpFile);
exec(`${exportFrom.pathmysqlcmd} --user=${exportFrom.user} --host=${exportFrom.host} --password=${exportFrom.password} --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --skip-triggers ${exportFrom.database} > ${dumpFile}`, (err, stdout, stderr) =>
{
if (err) { console.error(`exec error: ${err}`); return; }
});
break;
case '--import':
let importFile ='';
if(myArgs[1]===undefined)
importFile = +myArgs[0] || importTo.fileDump;
else importFile = myArgs[1] || importTo.fileDump;
console.log(`Now, importing data to the ${importFile} database`);
exec(`${importTo.pathMySQLcmd} --protocol=tcp --host=${importTo.host} --password=${importTo.password} --user=${importTo.user} --port=3306 --default-character-set=utf8 --comments ${importTo.database} < ${importFile}`, (err, stdout, stderr) => {
if (err) { console.error(`exec error: ${err}`); return; }
console.log(`The import has finished.`);
});
break;
default:
console.log('Sorry, that is not something I know how to do.');
console.log('- Configure .env file');
console.log('Usage: for export: node dump.js --export');
console.log('Usage: for import: node dump.js --import -->default value DUMPFILE_IMPORT');
console.log('Usage: for import: node dump.js --import dump.sql -->Path file dumps/');
}