2010-11-04 11 views

Odpowiedz

33

Można utworzyć zadanie zgarniać 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 

Następnie zadzwonić rake db:migrate_with_sql zalogować migrację.

+1

'ActiveRecord :: Base.logger = Logger.new (STDOUT)' jest magią, uzyskanie konkretnej migracji do uruchomienia wymaga wcześniejszego ustawienia rejestratora :) –

66

Opierając się na @qarol ale nawet chłodniej, dodać tego zadania Rake do jednego z plików Zgrabiarka:

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

Następnie można wywołać ANY zadania Rake i posiada wyjście logowanie:

rake log db:migrate 
+0

Możesz użyć tego: ActionMailer :: Base .logger = ActiveRecord :: Base.logger = Logger.new (STDOUT), aby uzyskać również dane wyjściowe programu Mailer. – Josh

+5

To działało świetnie i jest znacznie bardziej ogólne. To powinna być zaakceptowana odpowiedź. –

+0

Zgoda, to fantastyczna wskazówka. – bonh

6

Dane wyjściowe SQL są przechwytywane w pliku dziennika środowiska, np. development.log

Powiązane problemy