2010-11-04 25 views

Trả lời

33

Bạn có thể tạo một nhiệm vụ Rake trong 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 

Sau đó gọi rake db:migrate_with_sql để đăng nhập khi chuyển đổi.

+1

'ActiveRecord :: Base.logger = Logger.new (STDOUT)' là phép thuật, nhận được một di chuyển cụ thể để chạy chỉ liên quan đến việc thiết lập logger trước :) –

66

xây dựng trên @qarol nhưng thậm chí còn lạnh, thêm nhiệm vụ Rake này đến một trong các file Rake của bạn:

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

Sau đó, bạn có thể gọi BẤT CỨ nhiệm vụ Rake và có đầu ra đăng nhập:

rake log db:migrate 
+0

Bạn có thể sử dụng điều này: ActionMailer :: Base .logger = ActiveRecord :: Base.logger = Logger.new (STDOUT) để có được đầu ra mailer là tốt. – Josh

+5

Điều này làm việc tuyệt vời và nhiều hơn nữa chung chung. Nó phải là câu trả lời được chấp nhận. –

+0

Đồng ý, đây là một mẹo tuyệt vời. – bonh

6

Đầu ra SQL được ghi lại trong tệp nhật ký môi trường của bạn, ví dụ development.log

Các vấn đề liên quan