Files
2022-08-02 19:21:03 +08:00

52 lines
1.3 KiB
JavaScript

const config = require("./config")
import mysqldump from 'mysqldump';
const Importer = require('mysql-import');
module.exports = class {
constructor(app, sequelize) {
this.app = app
this.sequelize = sequelize
this.file = this.app.root + '/' + config.database + '.sql'
}
//备份数据库所有表
async backup(file) {
this.file = file || this.app.root + '/' + config.database + '.sql'
console.log('备份数据库中...');
await mysqldump({
connection: {
host : config.options.host,
port : config.options.port,
user : config.username,
password: config.password,
database: config.database,
},
dumpToFile: this.file,
});
console.log('备份数据库完成:', this.file);
}
//还原备份sql文件
async reduction() {
console.time("reduction")
//先备份旧数据
await this.backup(this.app.root + '/' + 'extend/mysql/backup/' + Date.now() + '.sql')
//清空数据库
await this.sequelize.drop()
//导入sql文件
const importer = new Importer({
host : config.options.host,
port : config.options.port,
user : config.username,
password: config.password,
database: config.database,
});
this.file = this.app.root + '/' + config.database + '.sql'
// const res = await importer.import(this.file)
// console.log(res);
console.timeEnd("reduction")
}
}