rake assets:尝试连接数据库的预编译

我正在尝试调试为什么我的应用程序在运行rake assets:precompile --trace时尝试连接到我的数据库rake assets:precompile --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  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/ruby-1.9.2-p290@skateparks/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  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/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `initialize' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `new' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:1161:in `connect' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:316:in `initialize' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:27:in `new' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/postgresql_adapter.rb:27:in `postgresql_connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:277:in `new_connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:287:in `checkout_new_connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:230:in `loop' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:229:in `checkout' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:95:in `connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:374:in `retrieve_connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:168:in `retrieve_connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:142:in `connection' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/model_schema.rb:308:in `clear_cache!' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activerecord-3.2.0/lib/active_record/railtie.rb:91:in `block (2 levels) in ' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:418:in `_run__2041913228368879189__prepare__1991931652306887621__callbacks' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:405:in `__run_callback' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:385:in `_run_prepare_callbacks' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/callbacks.rb:81:in `run_callbacks' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/action_dispatch/middleware/reloader.rb:74:in `prepare!' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/action_dispatch/middleware/reloader.rb:48:in `prepare!' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/application/finisher.rb:48:in `block in ' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/initializable.rb:30:in `instance_exec' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/initializable.rb:30:in `run' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/initializable.rb:55:in `block in run_initializers' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/initializable.rb:54:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/initializable.rb:54:in `run_initializers' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/application.rb:136:in `initialize!' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/railtie/configurable.rb:30:in `method_missing' /Users/Kyle/Desktop/skateparks-web/config/environment.rb:5:in `' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `require' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `block in require' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:236:in `load_dependency' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/activesupport-3.2.0/lib/active_support/dependencies.rb:251:in `require' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/application.rb:103:in `require_environment!' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/railties-3.2.0/lib/rails/application.rb:292:in `block (2 levels) in initialize_tasks' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/sprockets/assets.rake:89:in `block (2 levels) in ' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:176:in `block in invoke_prerequisites' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:174:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/sprockets/assets.rake:56:in `block (3 levels) in ' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/bin/rake:32:in `' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/bin/rake:19:in `load' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/bin/rake:19:in `' Tasks: TOP => environment rake aborted! Command failed with status (1): [/Users/Kyle/.rvm/rubies/ruby-1.9.2-p290/bi...] /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils.rb:53:in `block in create_shell_runner' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `call' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils.rb:45:in `sh' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `sh' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils.rb:78:in `ruby' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/file_utils_ext.rb:36:in `ruby' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/sprockets/assets.rake:9:in `ruby_rake_task' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/sprockets/assets.rake:17:in `invoke_or_reboot_rake_task' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/actionpack-3.2.0/lib/sprockets/assets.rake:25:in `block (2 levels) in ' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `call' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:205:in `block in execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/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/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `block (2 levels) in top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `each' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:90:in `block in top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:62:in `block in run' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/lib/rake/application.rb:59:in `run' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/gems/rake-0.9.2/bin/rake:32:in `' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/bin/rake:19:in `load' /Users/Kyle/.rvm/gems/ruby-1.9.2-p290@skateparks/bin/rake:19:in `' Tasks: TOP => assets:precompile 

rake assets:precompile默认初始化你的app,其中包括与数据库的连接。

config/application.rb你可以添加它,但请看下面的链接以获取有关它的警告:

 config.assets.initialize_on_precompile = false 

预编译资产的Rails指南

如果在您的情况下有意义,您可以选择使用哪个环境assets:precompile应该可以使用以下命令:

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

这对我的部署有意义,因为通常:

  1. 我使用rake在我的开发机器上生成资源(因为我的vps的内存在某种程度上有限)
  2. 我用公共/资产中生成的资产压缩所有应用程序
  3. 我将zip转移到vps并将包解压缩到那里

希望能帮助到你。

我有同样的问题。 将Sprockets更新到版本3后,每当我尝试在本地预编译资产(开发)时,无论使用生产环境的设置,我都会遇到此错误:

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

因为在我的本地(开发)我使用MySQL和服务器(生产),我使用Postgres。

标记为已解决的答案对我不起作用,因为在Rails 4.2.1没有config.assets.initialize_on_precompile

要解决,我遵循了3个简单的步骤:

  1. 在你的Gemfile中,添加: gem "activerecord-nulldb-adapter"
  2. database.yml ,更改适配器如下:

    production:

     adapter: <%= ENV['DB_ADAPTER'] ||= 'postgresql' %> 
  3. 在本地编译生产资产。 在您的终端中运行: DB_ADAPTER=nulldb RAILS_ENV=production rake assets:precompile

这个解决方案解决了我,我在这里看到了 。