2012-01-25 18 views
27

Próbuję debugować, dlaczego moja aplikacja próbuje połączyć się z moją bazą danych po uruchomieniu rake assets:precompile --trace.atuty rake: prekompilacja próbująca połączyć się z bazą danych

Prawdopodobnie brakuje mi czegoś w śladzie stosu ... ktokolwiek widzi stosowną linię?

DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in ActionController::Base instead. (called from <top (required)> at /Users/Kyle/Desktop/skateparks-web/config/application.rb:4) 
** Invoke assets:precompile (first_time) 
** Execute assets:precompile 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/bin/ruby /Users/Kyle/.rvm/gems/[email protected]/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace 
DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically. Please define instance methods directly in ActionController::Base instead. (called from <top (required)> at /Users/Kyle/Desktop/skateparks-web/config/application.rb:4) 
** Invoke assets:precompile:all (first_time) 
** Execute assets:precompile:all 
** Invoke assets:precompile:primary (first_time) 
** Invoke assets:environment (first_time) 
** Execute assets:environment 
** Invoke environment (first_time) 
** Execute environment 
rake aborted! 
FATAL: database "skateparks_production" does not exist 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `initialize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `new' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `connect' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:316:in `initialize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:27:in `new' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:27:in `postgresql_connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:277:in `new_connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:287:in `checkout_new_connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:235:in `block (2 levels) in checkout' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `loop' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `block in checkout' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/model_schema.rb:308:in `clear_cache!' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activerecord-3.2.0/lib/active_record/railtie.rb:91:in `block (2 levels) in <class:Railtie>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:418:in `_run__2041913228368879189__prepare__1991931652306887621__callbacks' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:405:in `__run_callback' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:81:in `run_callbacks' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/application/finisher.rb:48:in `block in <module:Finisher>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/initializable.rb:30:in `instance_exec' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/initializable.rb:30:in `run' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/initializable.rb:55:in `block in run_initializers' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/initializable.rb:54:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/initializable.rb:54:in `run_initializers' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/application.rb:136:in `initialize!' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/railtie/configurable.rb:30:in `method_missing' 
/Users/Kyle/Desktop/skateparks-web/config/environment.rb:5:in `<top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `require' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `block in require' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:236:in `load_dependency' 
/Users/Kyle/.rvm/gems/[email protected]/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `require' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/application.rb:103:in `require_environment!' 
/Users/Kyle/.rvm/gems/[email protected]/gems/railties-3.2.0/lib/rails/application.rb:292:in `block (2 levels) in initialize_tasks' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/sprockets/assets.rake:89:in `block (2 levels) in <top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:174:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:157:in `block in invoke_with_call_chain' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/sprockets/assets.rake:56:in `block (3 levels) in <top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/bin/rake:19:in `load' 
/Users/Kyle/.rvm/gems/[email protected]/bin/rake:19:in `<main>' 
Tasks: TOP => environment 
rake aborted! 
Command failed with status (1): [/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/bi...] 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:53:in `block in create_shell_runner' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `call' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `sh' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `sh' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:78:in `ruby' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `ruby' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/sprockets/assets.rake:9:in `ruby_rake_task' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/sprockets/assets.rake:17:in `invoke_or_reboot_rake_task' 
/Users/Kyle/.rvm/gems/[email protected]/gems/actionpack-3.2.0/lib/sprockets/assets.rake:25:in `block (2 levels) in <top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:158:in `block in invoke_with_call_chain' 
/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' 
/Users/Kyle/.rvm/gems/[email protected]/gems/rake-0.9.2/bin/rake:32:in `<top (required)>' 
/Users/Kyle/.rvm/gems/[email protected]/bin/rake:19:in `load' 
/Users/Kyle/.rvm/gems/[email protected]/bin/rake:19:in `<main>' 
Tasks: TOP => assets:precompile 

Odpowiedz

36

rake assets:precompile inicjuje aplikację domyślnie który obejmuje połączenie z bazą danych.

Wewnątrz config/application.rb można dodać, ale patrz poniższy odnośnik do ostrzeżeń o tym:

config.assets.initialize_on_precompile = false 

Rails Guide on Precompiling Assets

+10

To już nie działa w Railsach 4. –

+0

Powyższy link prowadzi do najnowszych dokumentów ... (i nie było ostrzeżenia). W przypadku wersji Rails 3.2 z ostrzeżeniem, przejdź tutaj: http://guides.rubyonrails.org/v3.2.13/asset_pipeline.html#precompiling-assets – Nick

+0

@ KARASZIIstván wydaje się działać na Rails 4.2.4. Myślę, że zostało to naprawione. – mawaldne

4

Jeśli to ma sens w sytuacji, można wybrać, przeciwko któremu środowisko assets:precompile powinno działać , z następującym poleceniem:

rake assets:precompile:all RAILS_ENV=development RAILS_GROUPS=assets 

To ma sens w przypadku mojego wdrożenia, ponieważ zazwyczaj:

  1. robię grabie do generuje aktywa na moim komputerze rozwoju (bo pamięć o moim VPS jest w jakiś sposób ograniczona)
  2. I zip całą aplikację z aktywów generowanych w public/aktywa
  3. przenieść zip do vps i rozpakuj pakiet tam

Mam nadzieję, że to pomaga.

+0

Dzięki! Jest to również idealne, gdy używasz komórek 4 z dołączonymi zasobami. Komórki dodają katalogi do punktu dostępowego za pomocą narzędzia railtie, ale wymagają wczytania plików klasy komórki, a wyłączenie initialize_on_precompile powoduje to. – apotonick

1

Miałem ten sam problem. Po aktualizacji kołem zębatym do wersji 3, ilekroć próbował precompile aktywów lokalnie (rozwój), jednak za pomocą ustawień w środowisku produkcyjnym, miałem ten błąd:

rake aborted! Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem „pg” to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

bo moim local (development) Używam MySQL a na serwerze (produkcja) używam PostgreSQL.

Odpowiedź oznaczona jako rozstrzygnięta nie działa dla mnie, ponieważ config.assets.initialize_on_precompile nie jest dostępna w Rails 4.2.1.

Aby rozwiązać, ja po 3 proste kroki:

  1. w twojej Gemfile dodać: gem "activerecord-nulldb-adapter"
  2. W database.yml zmień zasilacz następująco:

    production:

    adapter: <%= ENV['DB_ADAPTER'] ||= 'postgresql' %> 
    
  3. Aby skompilować lokację zasobów produkcyjnych Lly. uruchomić w terminalu: DB_ADAPTER=nulldb RAILS_ENV=production rake assets:precompile

to rozwiązało mi rozwiązań i sawyed here.

Powiązane problemy