私はモデルで動作するレーキタスクを持っています。しかし、私はモデルの中で、彼らは、アプリケーションの代わりにレーキから使用されていることを伝える必要があります。私のベストプラクティスは、rakeタスクを実行する前にコマンドラインで環境変数を設定することですが、それはチームの全員が環境変数を使用することを覚えておく必要があります。具体的には、rakeタスクの実行中にDelayed::Job
のhandle_asynchronously
の読み込みをスキップするif文があります。私たちは私たちの移行タスクを実行すると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
私は、コマンドラインに特殊な添加する必要を取り除くしたいと思います。私たちの移行コードは、偽のSunspotインスタンスを読み込んで、データの移行中にインデックスを無効にします。
これはうまくいくようです!私はそれを試して、期待どおりに働いているようだ。私はENVを使用し、それはモデルの前にロードされ、設定されています。ありがとう! – Sixty4Bit