lunes, 26 de enero de 2009

script/console con más información

Hacer que cuando usamos el comando script/console, podamos saber lo que tarda en buscar un registro de nuestra BBDD. Por ejemplo el primer post de la tabla POSTS

¿Cómo?
En la raiz de nuestra App, comprobamos desde Terminal con el comando ls -a
que no tengamos creado ya el archivo(.irbrc)
Si no lo tenemos creado, lo creamos y le metemos esto:
script_console_running = ENV.include?('RAILS_ENV') && IRB.conf[:LOAD_MODULES] && IRB.conf[:LOAD_MODULES].include?('console_with_helpers')
rails_running = ENV.include?('RAILS_ENV') && !(IRB.conf[:LOAD_MODULES] && IRB.conf[:LOAD_MODULES].include?('console_with_helpers'))
irb_standalone_running = !script_console_running && !rails_running

if script_console_running
require 'logger'
Object.const_set(:RAILS_DEFAULT_LOGGER, Logger.new(STDOUT))
end

Para crear este archivo hacemos: pico .irbrc esto nos abrira el editor pico. Aquí copiamos el
código que muestro en cursiva y luego pulsamos ctrl+o para guardar el archivo y ctrl+x
para salir del editor de consola pico.

Una vez hechos estos cambios, hacemos: script/console y ahí veremos esto:
script/console
Loading development environment (Rails 2.0.2)
>> Post.find(:first)
SQL (0.000587) SET NAMES 'utf8'
SQL (0.000779) SET SQL_AUTO_IS_NULL=0
Post Load (0.001305) SELECT * FROM `posts` LIMIT 1
Post Columns (0.059535) SHOW FIELDS FROM `posts`
=> #

Como puedes ver, en negrita te muestra los tiempos que tarda la BBDD en hacer las consultas.

¿Qué me muestra script/console si no hago nada de eso?
script/console
Loading development environment (Rails 2.0.2)
>> Post.find(:first)
=> #
Como puedes ver te suelta una información más reducida.

Esto lo he visto aquí [1] y una otra aproximación más sencilla aquí [2]
[1] http://toolmantim.com/articles/system_wide_script_console_logging
[2] http://weblog.jamisbuck.org/2007/1/8/watching-activerecord-do-it-s-thing

No hay comentarios:

Publicar un comentario