Ren*_*ama 13 mysql node.js sequelize.js
我试图运行一个脚本,以便在sequelize syncs via之前从数据库中删除所有表 sequelize.sync({ force: true });
当我从控制台运行脚本时,脚本运行没有问题,当我尝试从我的node.js应用程序运行它时会出现问题; MySql返回一个解析错误.
var dropAllTables = [
'SET FOREIGN_KEY_CHECKS = 0;',
'SET GROUP_CONCAT_MAX_LEN = 32768;',
'SET @tables = NULL;',
"SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables FROM information_schema.tables WHERE table_schema = (SELECT DATABASE());",
"SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);",
"SELECT IFNULL(@tables, 'SELECT 1') INTO @tables;",
'PREPARE stmt FROM @tables;',
'EXECUTE stmt;',
'DEALLOCATE PREPARE stmt;',
'SET FOREIGN_KEY_CHECKS = 1;',
"SET GLOBAL sql_mode = 'STRICT_ALL_TABLES';"
].join(' ');
sequelize.query(dropAllTables, {
raw: true
}).then(function() {
return sequelize.sync({ force: true });
}).then(function() {
console.log('Database recreated!');
callback();
}, function(err) {
throw err;
});
Run Code Online (Sandbox Code Playgroud)
{ [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 'SET GROUP_CONCAT_MAX_LEN = 32768; SET @tables = NULL; SELECT GROUP_CONCAT('`', t' at line 1]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0,
sql: 'SET FOREIGN_KEY_CHECKS = 0; SET GROUP_CONCAT_MAX_LEN = 32768; SET @tables = NULL; SELECT GROUP_CONCAT(\'`\', table_name, \'`\') INTO @tables FROM information_schema.tables WHERE table_schema = (SELECT DATABASE()); SET @tables = CONCAT(\'DROP TABLE IF EXISTS \', @tables); SELECT IFNULL(@tables, \'SELECT 1\') INTO @tables; PREPARE stmt FROM @tables; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET FOREIGN_KEY_CHECKS = 1; SET GLOBAL sql_mode = \'STRICT_ALL_TABLES\';' }
我在Google和sequelize docs页面上找不到关于sequelize的多个原始查询的任何内容(我查找了该query方法的特定参数).
我从一个SO克隆中找到了这个帖子,人们似乎有同样的问题,但我无法弄清楚解决方案是什么.
Jan*_*ier 27
您可以multipleStatements使用该选项
new Sequelize(user, pass, db, {
dialectOptions: {
multipleStatements: true
}
});
Run Code Online (Sandbox Code Playgroud)
您输入的任何内容dialectOptions都将传递给底层连接lib(在本例中mysql)
| 归档时间: |
|
| 查看次数: |
11240 次 |
| 最近记录: |