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") } }