Heroku rails控制台输出

时间:2016-02-18 21:51:58

标签: ruby-on-rails heroku

我在我的模型上运行了一个大型更新(生成一个随机的public_id)并且它永远在heroku上运行。

运行命令:

Episode.where(public_id: nil).find_each do |e|
  e.set_public_id
  e.save
end

永远服用,它是一个黑匣子。在本地运行我可以通过数据库提交看到进度。

有没有办法看看发生了什么?我应该采用不同的方式运行此命令吗?

1 个答案:

答案 0 :(得分:2)

进行佣金任务&使用the logger来告知发生的事情

#lib/tasks/episode.rake
require 'rake'

namespace :episode do
  desc "your description"
  task :update => :environment do
    Episode.where(public_id: nil).find_each do |e|
      Rails.logger.info "updating #{e} ..."          
      e.set_public_id
      e.save
    end
  end
end

然后运行它

heroku run rake episode:update

您可以使用

在另一个终端窗口中拖尾日志
heroku logs -t