MySQL Queries in irb ausgeben lassen

Manchmal möchte man auch in einer irb-Session die MySQL-Queries ausgeben lassen, die von Rails erzeugt wurden. Dies ist mit einer kleinen Anpassung in der environments.rb möglich.

Dazu muss die config/environment.rb um folgenden Eintrag ergänzt werden
[ruby]
def log_to(stream)
ActiveRecord::Base.logger = Logger.new(stream)
ActiveRecord::Base.clear_active_connections!
end
[/ruby]

Danach kann man in der Konsole diese Methode benutzen:

[ruby]
>> log_to STDOUT
=> …
>> Post.find(:first)
Post Load (0.000138) SELECT * FROM posts LIMIT 1
=> #<Post:0x1234 …>
>>
[/ruby]

So kann man nun die Queries prüfen oder sich einfach einen Überblick verschaffen was im Hintergrund passiert 🙂