我正在尝试使用node.js / Sequelize以编程方式将MySQL数据库的转储导入新的实例。我通过phpMyAdmin导出旧数据库并将其保存到文本文件中。
然后我正在做以下事情:
fs.readFile('./sql/dump.sql', 'utf-8', function(err, data){
sequelize.query(data).success(function(data){
done.resolve(data);
}).fail(function(err){
done.reject(err);
});
});
在我的导入脚本中。这失败了:
[Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use near
'CREATE DATABASE `db456668865` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_c
i' at line 13]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0
这很奇怪,因为我从未触及SQL数据,并且期望phpMyAdmin生成有效的SQL(我也看不到提到的部分中的语法错误)。更奇怪的是,当我尝试通过数据库的phpMyAdmin接口导入SQL转储时,我试图将内容导入其中也完美地工作。是什么阻止我以编程方式执行此操作?
修改:
我像这样初始化sequelize
:
var sequelize = new Sequelize(dbConfig.db, dbConfig.user, dbConfig.pass, {
host : dbConfig.host
, port : dbConfig.port
});
我可以将该实例完美地用于任何其他操作。