2010-11-04 16 views

Respuesta

33

Usted puede crear una tarea Rake en lib/tasks/:

namespace :db do 
    desc 'Make migration with output' 
    task(:migrate_with_sql => :environment) do 
    ActiveRecord::Base.logger = Logger.new(STDOUT) 
    Rake::Task['db:migrate'].invoke 
    end 
end 

luego llamar a rake db:migrate_with_sql para registrar la migración.

+1

'ActiveRecord :: Base.logger = Logger.new (STDOUT)' es la magia, hacer que una migración particular se ejecute solo implica configurar el registrador antes :) –

66

Basándose en @qarol pero aún más frío, añadir esta tarea Rake a uno de sus archivos Rake:

task :log => :environment do 
    ActiveRecord::Base.logger = Logger.new(STDOUT) 
end 

A continuación, puede llamar CUALQUIER tarea Rake y tienen la salida conectado:

rake log db:migrate 
+0

Puedes usar esto: ActionMailer :: Base .logger = ActiveRecord :: Base.logger = Logger.new (STDOUT) para obtener también salida de correo. – Josh

+5

Esto funcionó de maravilla y es mucho más genérico. Debe ser la respuesta aceptada. –

+0

De acuerdo, este es un consejo fantástico. – bonh

6

La salida de SQL se captura en su archivo de registro de entorno, por ejemplo development.log

Cuestiones relacionadas