# How to I see SQL trace when using (a) rails console & (b) running rspec tests?

**URL:** <https://www.ruby-forum.com/t/how-to-i-see-sql-trace-when-using-a-rails-console-b-running-rspec-tests/166018>\
**Category:** Rails\
**Created:** [April 21, 2009, 2:54am UTC](https://www.ruby-forum.com/t/how-to-i-see-sql-trace-when-using-a-rails-console-b-running-rspec-tests/166018 "2009-04-21T02:54:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [April 21, 2009, 2:54am UTC](https://www.ruby-forum.com/t/how-to-i-see-sql-trace-when-using-a-rails-console-b-running-rspec-tests/166018/1 "2009-04-21T02:54:26Z")

</div>

Hi,

I’d like to know how to monitor the SQL calls (from ActiveRecord) for  
both  
the cases:  
(a) using rails console [development mode], and  
(b) running rspec tests [test mode]

How can I do this? For item (a) I recollect previously I could just run  
up  
a “./script/server” and see this whilst using “./script/console” however  
it  
does not seem to be working currently for me.

Tks

–  
Greg  
[http://blog.gregnet.org/](http://blog.gregnet.org/)

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [April 21, 2009, 3:01am UTC](https://www.ruby-forum.com/t/how-to-i-see-sql-trace-when-using-a-rails-console-b-running-rspec-tests/166018/2 "2009-04-21T03:01:28Z")

</div>

On Apr 20, 2009, at 5:53 PM, Greg H. wrote:

> a “./script/server” and see this whilst using “./script/console”  
> however it  
> does not seem to be working currently for me.

Not sure about (b), but for (a) put this in your ~/.irbrc

# Log to STDOUT if in Rails

if ENV.include?(‘RAILS\_ENV’) && !Object.const\_defined?  
(‘RAILS\_DEFAULT\_LOGGER’)  
require ‘logger’  
RAILS\_DEFAULT\_LOGGER = Logger.new(STDOUT)  
end

---

<div class="post-metadata">

**Author:** ![greg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/71c47a/32.png) [@greg](https://www.ruby-forum.com/u/greg)\
**Post date:** [April 21, 2009, 4:48am UTC](https://www.ruby-forum.com/t/how-to-i-see-sql-trace-when-using-a-rails-console-b-running-rspec-tests/166018/3 "2009-04-21T04:48:34Z")

</div>

> > (b) running rspec tests [test mode]

> Not sure about (b), but for (a) put this in your ~/.irbrc

For (b), gem install assert\_efficient\_sql, then put this around your  
RSpec  
money-line:

inspect\_sql :verbose =\> true do  
concoct\_sql()  
end

It will spew out your SQL statements, and their EXPLAIN results, so you  
can see  
the bottlenecks.

It only works for MySQL tho…

Also, put in require ‘assert\_efficient\_sql’, and this:

Spec::Runner.configure do |c|  
c.include Test::Unit::Assertions  
end

–  
Phlip  
[http://flea.sourceforge.net/resume.html](http://flea.sourceforge.net/resume.html)
