2013-05-08 11 views
10

ustawićaktywa prekompilacji Heroku nie powiodła się szyna 4 app

config.assets.initialize_on_precompile = false 

w environment.rb. Aktywa zostały skompilowane z powodzeniem lokalnie przez metę

RAILS_ENV=production bundle exec rake assets:precompile 

Podczas manifest-fingerprint.json (Rails 4.0 generuje manifest.json zamiast manifest.yml) nie zostało wykryte, gdy wciśnięty do Heroku i Heroku próbował uruchomić prekompilacji ponownie. Potem dostałem błąd jako:

Running: rake assets:precompile 
     rake aborted! 
     could not connect to server: Connection refused 
     Is the server running on host "127.0.0.1" and accepting 
     TCP/IP connections on port 5432? 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `initialize' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `new' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:771:in `connect' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:493:in `initialize' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:446:in `new_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:456:in `checkout_new_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:427:in `acquire_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:364:in `block in checkout' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:363:in `checkout' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:273:in `block in connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:272:in `connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_adapters/abstract/connection_pool.rb:552:in `retrieve_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_handling.rb:79:in `retrieve_connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/connection_handling.rb:53:in `connection' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/model_schema.rb:208:in `columns' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/model_schema.rb:242:in `column_defaults' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/locking/optimistic.rb:169:in `column_defaults' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/core.rb:164:in `initialize' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/inheritance.rb:24:in `new' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.beta1/lib/active_record/inheritance.rb:24:in `new' 
     /tmp/build_2ospgf61r6sch/lib/student_module.rb:11:in `acts_as_student' 
     /tmp/build_2ospgf61r6sch/app/models/applicant.rb:4:in `<class:Applicant>' 
     /tmp/build_2ospgf61r6sch/app/models/applicant.rb:3:in `<top (required)>' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `block in require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:329:in `require_or_load' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:288:in `depend_on' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:206:in `require_dependency' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:464:in `block (2 levels) in eager_load!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:463:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:463:in `block in eager_load!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:461:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:461:in `eager_load!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/engine.rb:346:in `eager_load!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application/finisher.rb:56:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `instance_exec' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:30:in `run' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:55:in `block in run_initializers' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/initializable.rb:54:in `run_initializers' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:213:in `initialize!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/railtie/configurable.rb:30:in `method_missing' 
     /tmp/build_2ospgf61r6sch/config/environment.rb:5:in `<top (required)>' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `block in require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:213:in `load_dependency' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/activesupport-4.0.0.beta1/lib/active_support/dependencies.rb:228:in `require' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:187:in `require_environment!' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0.beta1/lib/rails/application.rb:247:in `block in run_tasks_blocks' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/sprockets-rails-2.0.0.rc4/lib/sprockets/rails/task.rb:16:in `block (2 levels) in define' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `call' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:246:in `block in execute' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:241:in `execute' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:184:in `block in invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:205:in `block in invoke_prerequisites' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:203:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:203:in `invoke_prerequisites' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:183:in `block in invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:177:in `invoke_with_call_chain' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/task.rb:170:in `invoke' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:143:in `invoke_task' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `block (2 levels) in top_level' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `each' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:101:in `block in top_level' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:110:in `run_with_threads' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:95:in `top_level' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:73:in `block in run' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:160:in `standard_exception_handling' 
     /tmp/build_2ospgf61r6sch/vendor/bundle/ruby/2.0.0/gems/rake-10.0.4/lib/rake/application.rb:70:in `run' 

wydaje się, że błąd był spowodowany pliku w lib/student_module.rb, która była potrzebna w config/inicjalizatorów/student_init.rb:

#lib/student_module.rb, the error pointed to this line: 
user_attributes = User.new.abttributes.keys 
#config/initializers/student_init.rb 
require 'student_module' 
ActiveRecord::Base.extend Student 

The błąd może być, ponieważ Heroku inicjuje aplikację, która zawiera połączenie z bazą danych. Ale nie miała zobaczyć komunikaty jak

rake aborted! 
could not connect to server: Connection refused 
Is the server running on host "127.0.0.1" and accepting 
TCP/IP connections on port 5432? 

bo ustawiony config.assets.initialize_on_precompile fałszywy, a także precompile aktywów lokalnie.

Wszelkie sugestie, aby rozwiązać ten problem? Dziękujemy!

Odpowiedz

22

Musisz włączyć funkcję laboratorium na Heroku user-env-compile, która daje aplikacji dostęp do zmiennych środowiskowych podczas kompilacji.

heroku labs:enable user-env-compile -a myapp 

Czytaj więcej na ten temat na https://devcenter.heroku.com/articles/labs-user-env-compile

+0

wiesz dlaczego to rozwiązuje problem? Wydaje się, że jest to szybkie rozwiązanie, które narusza najlepsze praktyki Heroku. – corbin

+2

Tak, tak - oznacza, że ​​kompilacja zależy od czegoś zdefiniowanego poza kodem, co zdecydowanie narusza 12 czynnik. Problem polega na tym, że w aplikacji znajduje się kod, który uzyskuje dostęp do bazy danych podczas inicjalizacji, i oczekuje, że baza danych znajdzie się w tym miejscu i spowoduje błąd - w przypadku Gems/Frameworks zapobiegnie to wystąpieniu błędu. –

Powiązane problemy