我知道还有一些与此问题有关的其他问题,但我一直无法找到答案然而。Rails 4.1.4在推送到Heroku时试图连接到未初始化的Mongo数据库(rake资产:预编译)
我正在用Rails 4.1.4构建应用程序。我使用MongoDB作为我的数据库和Mongoid 4.0.0作为ODM。预编译因为Rails的尝试连接到生产数据库,这是不是在这一点上初始化,并默认连接到:
当我把我的应用程序的Heroku,构建运行耙资产时失败开发数据库,这在生产中不存在。这是错误我得到:
准备应用Rails的资产管道 运行:耙资产:预编译 耙中止! Mongo :: ConnectionFailure:无法连接到本地主机上的主节点:27017 /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo-1.10.2/lib /mongo/mongo_client.rb:422:in
connect' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo-1.10.2/lib/mongo/mongo_client.rb:661:in
setup' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo-1.10.2/lib/mongo/ mongo_client.rb:177:initialize' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo_mapper-0.13.0/lib/mongo_mapper/connection.rb:88:in
新' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo_mapper-0.13.0/lib/mongo_mapper/connection.rb :88:connect' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo_mapper-0.13.0/lib/mongo_mapper/connection.rb:98:in
setup' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/mongo_mapper-0.13.0/lib/mongo_mapper/railtie.rb:48:在block in <class:Railtie>' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/initializable.rb:30:in
instance_exec' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/initializable.rb:30:inrun' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/initializable.rb:55:in
block in run_initializers' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/initializable.rb:54:inrun_initializers' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/application.rb:300:in
initialize!' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/config/environment.rb:5:in<top (required)>' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/application.rb:276:in
需要” /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0 /gems/railties-4.1.4/lib/rails/application.rb:276:inrequire_environment!' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/gems/railties-4.1.4/lib/rails/application.rb:379:in
block in run_tasks_blocks' /tmp/build_f8b818f9-3058-4ea1-807e-158e2964efcd/vendor/bundle/ruby/2.0.0/ gem/sprockets-rails-2.1.4/lib/sprockets/rails/task.rb:64: `block(2 levels)in define' 任务:TOP =>环境 (请参阅完整跟踪, - 跟踪)! !预编译资产失败。 !!推拒绝,未能编译Ruby应用程序
有没有人知道这个问题的修复?如何在生产环境中预编译资产时告诉Rails未连接到数据库?
在此先感谢您的帮助!
最佳,
此功能在Heroku中不再可用。 Heroku默认启用它。所以这个修复不适合我。不管怎么说,多谢拉!。 – 2014-09-12 16:54:53