こんなかんじでイケるというメモ
config/initializers/arproxy.rb
RAILS_ROOT = Rails.root.to_s
class QueryTracer < Arproxy::Base
def execute(sql, name=nil)
line = caller.find {|line| line.start_with?(RAILS_ROOT) and not line.start_with?(__FILE__) }
sql << " /* #{line} */"
super(sql, name)
end
end
Arproxy.configure do |config|
config.adapter = "mysql2" # A DB Apdapter name which is used in your database.yml
config.use QueryTracer
end
Arproxy.enable!
ログにこんな感じで出る
[DEBUG] SELECT `filter_sets`.id FROM `filter_sets` WHERE `filter_sets`.`project_id` = 525 /* /home/sonots/myapp/app/models/report.rb:79:in `remove_unavailable_filter_set'
遅そうなので development でしか有効化してない。
EDIT: slow なクエリにだけ仕込むようにすれば特に問題にならなそう