导出
const childProcess=require('child_process');
const db={
user:'user',
pwd:'pwd',
database:'database',
tables:'table1 table2 table3 table4 ....',
path:'path'
};
let cmd=`mysqldump -u${db.user} -p${db.pwd} ${db.database} ${db.tables} > ${db.path}`;
console.log(cmd);
//执行mysqldump命令
childProcess.exec(cmd,(error, stdout, stderr)=>{
console.log(error);
console.log(stdout);
console.log(stderr);
});
导入,代码不完整
query() 对mysql模块的封装
// 读取sql文件
let data=fs.readFileSync('./data.sql','utf-8');
// 去掉换行,注释,把每条sql语句存放到数组中
data=data.replace(/--[^\n]*/g,'');
data=data.split(';');
// 记录执行错误条数,也可自行可记录下那条语句执行出错
let errorNum=0;
// 执行use database;语句,选择要导入的数据库
await query(`use ${arg.db}`);
// 循环去执行每一条sql语句
for(let i in data){
console.log(data[i]);
// 数据全正确导入,可能会有部分导出时添加的sql执行出错
try{
await query(data[i]);
}catch{
errorNum++;
}
}
console.log("执行发生错误次数:",errorNum);
if(errorNum>=data.length/4){
console.log("导入失败,执行失败条数:",errorNum);
}else{
console.log("导入成功");
}
|