모델과 작동하는 레이크 작업이 있습니다. 하지만 모델 대신 Rake에서 사용하는 대신 앱 내에서 사용해야한다고 말해야합니다. 최선의 아이디어는 rake 태스크를 실행하기 전에 명령 행에 환경 변수를 설정하는 것이지만, 팀의 모든 사람들은 환경 변수를 사용해야한다는 것을 기억해야합니다. 특히, 레이크 작업을 실행하는 동안 Delayed::Job
의 handle_asynchronously
로드를 건너 뛸 if 문이 있습니다. 우리는 우리의 마이그레이션 작업을 실행하면레일스 모델이로드되기 전에 레이크 작업에서 무언가를하십시오.
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