我有一个rake任务可以与模型一起工作。但我需要告诉模型他们正在使用Rake而不是在应用程序中。我最好的想法是在运行rake任务之前在命令行上设置环境变量,但这需要团队中的每个人都记住使用环境变量。具体来说,我有一个if语句可以在运行rake任务时跳过加载Delayed::Job
的handle_asynchronously
。在Rails模型加载之前在rake任务中做些什么
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
我想摆脱,需要特殊的除了命令行。我们的迁移代码在迁移数据时加载假太阳黑子实例以关闭索引。
这看起来像会起作用!我试了一下,似乎按预期工作。我使用了ENV,它正在模型之前加载和设置。谢谢! – Sixty4Bit