所以我花了一天的时间阅读每一个 SO 问题,甚至是轻微相关的问题,并检查了 Heroku 文档。
这是推送时的 Heroku 问题:
-----> Preparing app for Rails asset pipeline
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?
我敢肯定这很熟悉。
我知道,随着 Rails 4 上的 Heroku 部署发生了很多变化,但我什至尝试了许多 4.0 之前的建议来尝试修复它。
它的:
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `initialize'
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `new'
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:825:in `connect'
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:542:in `initialize'
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `new'
/tmp/build_22xpuyyrmltz6/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0/lib/active_record/connection_adapters/postgresql_adapter.rb:41:in `postgresql_connection'
等等......所以从我收集的内容来看,这是因为试图在编译期间访问数据库。
RAILS_ENV=production bundle exec rake assets:precompile
运行正常并生成 manifest.json,但 Heroku 无法识别它。
我也试过这个,但我认为 Rails 4 默认情况下是错误的。
config.assets.initialize_on_precompile = false
因此,我很乐意尝试的一种解决方法是:
heroku labs:enable user-env-compile
我尝试了最多,创建了新的heroku应用程序,打开和关闭它,然后再次打开。尝试了多次推送。我也在需要时做出承诺,所以事实并非如此。
还尝试了 rails_12factor 和其他一些我不记得的东西。一切都无济于事。
有什么我想念的吗?user-env-compile 似乎正在解决其他所有人的问题,但似乎对我没有影响。
我什至重新启动了我的电脑几次......任何帮助将不胜感激。