我在我的模型上运行了一个大型更新(生成一个随机的public_id)并且它永远在heroku上运行。
运行命令:
Episode.where(public_id: nil).find_each do |e|
e.set_public_id
e.save
end
永远服用,它是一个黑匣子。在本地运行我可以通过数据库提交看到进度。
有没有办法看看发生了什么?我应该采用不同的方式运行此命令吗?
答案 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