【发布时间】:2014-04-19 12:17:04
【问题描述】:
我正在使用sails 和mysql 启动一个项目,但我不知道如何配置它以显示在控制台中执行的查询。
【问题讨论】:
标签: node.js sails.js waterline
我正在使用sails 和mysql 启动一个项目,但我不知道如何配置它以显示在控制台中执行的查询。
【问题讨论】:
标签: node.js sails.js waterline
mysql 适配器有一个调试变量 LOG_QUERIES 将所有查询发送到控制台。
LOG_QUERIES=true node myFile.js
【讨论】:
很遗憾,目前 Sails 无法实现这一点,尽管该功能已被请求。最好的办法是检查数据库提供的日志文件:
Postgres:How to log PostgreSQL queries?
MySQL:Log all queries in mysql
MongoDB:MongoDB logging all queries
【讨论】:
LOG_QUERIES=true node myFile.js
如果您在 Mac OS 上使用 Postgresql.app 进行 Sails.js 开发,您可以启用所有查询日志记录,如下所示:
在新终端中,编辑~/Library/Application Support/Postgres/var/postgresql.conf 并设置:
logging_collector = on
log_directory = 'pg_log'
log_statement = 'all'
然后重启 Postgresql.app(点击菜单栏图标,退出,然后使用 Spotlight 重新启动)。
然后在日志尾部添加:
tail -F ~/Library/Application\ Support/Postgres/var/pg_log/postgresql-2014-10-30_104957.log
您必须找到最新的 postgresql-*log 并替换上面的内容。
【讨论】:
我的回答可能很晚,但刚刚找到了一个可能对人们有所帮助的解决方案 帆版 = 0.12.14
要记录查询,请执行以下操作
导航到 node_modules\sails-mysql\lib\adapter.js
找到“log”的变量声明
然后将“process.env.LOG_QUERIES”更改为“sails.config.LOG_QUERIES”
导航到
[sails root]/config/env/[开发或生产].js
添加
LOG_QUERIES = 'true',
注意 :- 记得为 true
加上 "" 或 ''【讨论】:
此解决方案适用于帆 >= 1.1。
sails-mysql(从 v1.0.0 开始)适配器使用 machinepack-mysql 驱动程序,它将查询记录到 debug。因此,记录所有本机查询所需要做的就是启用调试标志:
DEBUG=query node app.js
【讨论】:
或者添加日志到sql模块。
在 mysql 中是:
working_dir/node_modules/sails-mysql/node_modules/mysql/lib/Connection.js
function **createQuery** (33)
【讨论】:
放
LOG_QUERIES = '真'
在风帆升降命令中
【讨论】:
只需将其添加到您的数据存储区
调试:["ComQueryPacket"]
config/datastores.js 应该是这样的
module.exports.datastores = {
default: {
adapter: 'sails-mysql',
user: '*****',
password: "****",
host: '*****',
database: '****',
debug: ["ComQueryPacket"]
}
}
【讨论】: