如何查看Sequelize.js生成的SQL?

时间:2014-01-29 09:55:17

标签: node.js sequelize.js

我想看看发送到PostgreSQL服务器的SQL命令,因为我需要检查它们是否正确。特别是,我对表创建命令感兴趣。

例如,ActiveRecord(Ruby)将其SQL语句打印到标准输出。这可能与Node.js / ActionHero.js和Sequelize.js一起使用吗?

4 个答案:

答案 0 :(得分:110)

初始化sequelize时可以传递日志记录选项,可以是函数或console.log

var sequelize = new Sequelize('database', 'username', 'password', {
    logging: console.log
    logging: function (str) {
        // do your own logging
    }
});

如果您只想查看表创建查询,也可以将日志记录选项传递给.sync

sequelize.sync({ logging: console.log })

答案 1 :(得分:28)

如果你想查看一个命令的sequelize,你可以听它并附加一个函数来打印sql。

看看这个例子:

User.find(1).on('sql', console.log).then(function(user) {
  // do whatever you want with the user here

答案 2 :(得分:14)

如日志Error: Please note that find* was refactored and uses only one options object from now on.中所述。对于最新的续集版本(4),如果您只想获得一个命令的结果:

User.findAll({where: {...}, logging: console.log})

答案 3 :(得分:8)

您还可以通过设置环境来利用Sequelize对Debug模块的使用,从而: DEBUG=sequelize:sql* 在启动您的应用之前。