是否可以输出“rake db:migrate”生成的SQL更改脚本?

是否可以输出“rake db:migrate”生成的SQL更改脚本?

您可以在lib/tasks/创build一个Rake任务:

 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 

然后调用rake db:migrate_with_sql来logging迁移。

build立在@qarol上,但更酷的是,将这个Rake任务添加到您的一个Rake文件中:

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

然后,您可以调用ANY Rake任务并logging输出:

 rake log db:migrate 

SQL输出在您的环境日志文件(例如development.log)中被捕获