我想看看发送到PostgreSQL服务器的SQL命令,因为我需要检查它们是否正确。特别是,我对表创建命令感兴趣。
例如,ActiveRecord(Ruby)将其SQL语句打印到标准输出。这可能与Node.js / ActionHero.js和Sequelize.js一起使用吗?
答案 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*
在启动您的应用之前。