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

def log_to(stream)
  ActiveRecord::Base.logger = Logger.new(stream)
  ActiveRecord::Base.clear_active_connections!
end

Danach kann man in der Konsole diese Methode benutzen:

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

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

Eingestellt am 27.08.2009 um 08:00

Kategorie: Tutorials

Be Sociable, Share!

Kommentare für diesen Artikel wurden geschlossen.

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)

Rails auf Rubyforge
Rails auf Github