2012-03-22 24 views
7

Heroku Bamboo çalışırken, bu hiç sorun olmadı. Şimdi, Cedar'da, modellerime sunucudaki bir komisyon görevinden erişmeye çalıştığımda hatalar alıyorum. Bu, standart bir komisyon görevi olan rake db:seed ile olduğu gibi, açıkça içerdiği kendi özel oluşturulmuş görevlerim ile de olur: çevre. Başka bir yerde bu konuda herhangi bir söz bulamıyorumÜretim Rake Görevleri Modellerimi Tanıyın

namespace :db do 
    desc "Update db" 
    task :new_seed => :environment do 
    require './Scraped_Data/Games/code/column-headers.rb' 
    require 'csv' 
    require 'net/http' 
    require './config/environment.rb' 

    # code here... 

    end 
end 

ve tüm bu görevleri gelişiminde mükemmel çalıştırın: Hatta bu yüzden yedek olarak yapmak. Ben threadsafe! = trueconfig/environments/production.rb

Devre Dışı Bırakma benim üretim ortamında yapılandırılmış olan

rake aborted! 
uninitialized constant Object::Movie 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/module.rb:36:in `const_missing' 
/app/lib/tasks/new_seed.rake:187:in `block in load_scraped_data' 
/app/vendor/bundle/ruby/1.9.1/gems/rest-open-uri-1.0.0/lib/rest-open-uri.rb:37:in `open' 
/app/vendor/bundle/ruby/1.9.1/gems/rest-open-uri-1.0.0/lib/rest-open-uri.rb:37:in `open' 
/app/lib/tasks/new_seed.rake:148:in `load_scraped_data' 
/app/lib/tasks/new_seed.rake:550:in `block (2 levels) in <top (required)>' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `call' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:205:in `block in execute' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `each' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:200:in `execute' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/usr/local/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb:144:in `invoke' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:116:in `invoke_task' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block (2 levels) in top_level' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `each' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:94:in `block in top_level' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:88:in `top_level' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:66:in `block in run' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:133:in `standard_exception_handling' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb:63:in `run' 
/app/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake:33:in `<top (required)>' 
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `load' 
/app/vendor/bundle/ruby/1.9.1/bin/rake:19:in `<main>' 
Tasks: TOP => db:new_seed 
+1

Bunun farklı bir nedenden dolayı başarısız olduğundan şüpheleniyorum. Özellikle "heroku run konsolu" çalıştırırsanız "Movie" yükleyebilir misiniz? –

+0

Evet yapabilirim. Tüm modellerime konsoldan erişirken sorun yaşıyorum. Sadece yeniden kontrol ettim ve Film "heroku run konsolu" ndan iyi çalışıyor. –

+2

Ben threadafe vardı! = true 'üretim ortamımda yapılandırıldı. Bu soruna neden oldu. –

cevap

20

verir set ÅŸan dependency_loading = false
size uygulamanızda threadsafe ve erişim sağlamak etmek istiyorsanız Görevinizdeki modeller, yüklemeniz gerekir.

# Enable threaded mode 
config.threadsafe! 
config.dependency_loading = true if $rails_rake_task 


Ref .: http://nowhereman.github.com/how-to/rails_thread_safe/

Umut bu yardım!

+0

'$ rails_rake_task' artık tırmık veya rayların son sürümlerinde tanımlanmadı, ancak yine de Rakefile'ınızda' $ rails_rake_task = true' öğesini elle ayarlayabilirsiniz. –

1

: Burada herhangi bir anlayışlar için teşekkürler ve onlar Heroku üzerinde benim bir modeli karşılaşmak sıra tam hata mesajı tırmık görevleri en kısa sürede tükürür olduğunu Bu sorunu çözer.

burada bulunan cevap

: rake aborted! uninitialized constant Object::Country, why can't see model? Varsayılan olarak biraz daha açıklama ve diğer geçici çözüm seçeneklerini (özellikle son halkası)