【发布时间】:2017-07-19 16:39:51
【问题描述】:
我有一个适用于模型的 rake 任务。但我需要告诉模型它们是从 Rake 中使用的,而不是在应用程序中使用的。我最好的想法是在运行 rake 任务之前在命令行上设置一个环境变量,但这需要团队中的每个人都记住使用环境变量。具体来说,我有一个 if 语句可以在运行 rake 任务时跳过加载 Delayed::Job 的 handle_asynchronously。
class Thing < ActiveRecord::Base
searchable do
string :title
text :title, :content
end
handle_asynchronously unless ENV['MIGRATINGDATA']
end
当我们运行迁移任务时,我们会这样做:
MIGRATINGDATA=true bundle exec rake project:migrate_data
我想摆脱对命令行进行特殊添加的需要。我们的迁移代码加载了一个虚假的 Sunspot 实例以在迁移数据时关闭索引。
【问题讨论】:
标签: ruby-on-rails ruby rake delayed-job sunspot