2017-12-13 2 views
0

gem을 사용하여 예정된 레이크 작업 설정. 는 lib 디렉토리/작업/my_task.rake에 설정에서레일스 배경 작업이 작동하지 않는 임차인 스키마 전환

코드/schedule.rb에게

env :PATH, ENV['PATH'] 
env :GEM_PATH, ENV['GEM_PATH'] 
set :output, "#{Whenever.path}/log/scheduler.log" 
every 1.minute do 
    rake "db:my_task" 
end 

코드 (내 프로젝트에서 아파트 보석을 사용하여) 특정 스키마로 전환 할 필요

namespace :db do 
    task :my_task => :environment do 
    Apartment::Tenant.switch("subdomain") do 
     #My Code here 
    end 
    end 
end 

로그에 다음 오류가 발생합니다. log/scheduler.logs

rake aborted! 
    Apartment::TenantNotFound: One of the following schema(s) is invalid: "subdomain" "public" 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/postgresql_adapter.rb:72:in `rescue in connect_to_new' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/postgresql_adapter.rb:65:in `connect_to_new' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:91:in `block in switch!' 
/var/lib/gems/2.3.0/gems/activesupport-5.1.3/lib/active_support/callbacks.rb:97:in `run_callbacks' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:88:in `switch!' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:105:in `switch' 
/home/user1/Desktop/SPERICORN/kidversity/lib/tasks/dynamic_age_setter.rake:4:in `block (2 levels) in <top (required)>' 
/var/lib/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' 
ActiveRecord::StatementInvalid: Could not find schema kochi 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/postgresql_adapter.rb:66:in `connect_to_new' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:91:in `block in switch!' 
/var/lib/gems/2.3.0/gems/activesupport-5.1.3/lib/active_support/callbacks.rb:97:in `run_callbacks' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:88:in `switch!' 
/var/lib/gems/2.3.0/gems/apartment-1.2.0/lib/apartment/adapters/abstract_adapter.rb:105:in `switch' 
/home/user1/Desktop/SPERICORN/kidversity/lib/tasks/dynamic_age_setter.rake:4:in `block (2 levels) in <top (required)>' 
/var/lib/gems/2.3.0/gems/rake-12.0.0/exe/rake:27:in `<top (required)>' 
Tasks: TOP => db:dynamic_age_setter 
(See full trace by running task with --trace) 

답변

0

누락되었습니다. ActiveRecord :: Ba

내림차순 '업데이트 데이터'

작업 email_normalize_to_downcase

namespace :debtor_email_data_fix do 

: : :! 환경 create_connection_with_db에게 아파트 :: Tenant.switch ('앱')을 할

se.establish_connection.connection 아래이 샘플 코드를 시도
Email.find_each do |t| 
    t.update(address: t.address.downcase) 
end 

작업의 모든 : [: email_normalize_to_down 케이스] 할

개인 끝

데프 create_connection_with_db 액티브 :: Base.establish_connection.connection 끝 끝

관련 문제