【问题标题】:rake aborted not accepting TCP/IP connections when pushing to herokurake 在推送到 heroku 时中止不接受 TCP/IP 连接
【发布时间】:2014-02-10 12:37:43
【问题描述】:

在过去的 4 个小时里,我只是坐在这里尝试将我的应用部署到 heroku。

我只想推送我的更改,但每次推送更改时都会出现以下内容。

rake aborted! The driver encountered an unknown error: org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

我正在使用jruby 1.7.4ruby 1.9.3 运行rails 4.0.2 应用程序。

我已经用过这个扩展了。 https://devcenter.heroku.com/articles/labs-user-env-compile 但这也无济于事。

这是更详细的堆栈跟踪

/tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-jdbc-adapter-1.3.5/lib/arjdbc/jdbc/connection.rb:23:in `initialize'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-jdbc-adapter-1.3.5/lib/arjdbc/jdbc/adapter.rb:68:in `initialize'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-jdbc-adapter-1.3.5/lib/arjdbc/postgresql/adapter.rb:1275:in `initialize'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-jdbc-adapter-1.3.5/lib/arjdbc/jdbc/connection_methods.rb:12:in `jdbc_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-jdbc-adapter-1.3.5/lib/arjdbc/postgresql/connection_methods.rb:45:in `postgresql_connection'
       org/jruby/RubyBasicObject.java:1709:in `__send__'
       org/jruby/RubyKernel.java:2213:in `send'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:440:in `new_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:450:in `checkout_new_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:421:in `acquire_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:356:in `checkout'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:355:in `checkout'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:265:in `connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:264:in `connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:546:in `retrieve_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_handling.rb:79:in `retrieve_connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/connection_handling.rb:53:in `connection'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/model_schema.rb:203:in `table_exists?'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activerecord-4.0.2/lib/active_record/attribute_methods.rb:123:in `attribute_method?'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activemodel-4.0.2/lib/active_model/validations/acceptance.rb:16:in `setup'
       org/jruby/RubyArray.java:2651:in `reject!'
       org/jruby/RubyArray.java:2614:in `reject'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activemodel-4.0.2/lib/active_model/validations/acceptance.rb:16:in `setup'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activemodel-4.0.2/lib/active_model/validations/with.rb:88:in `validates_with'
       org/jruby/RubyArray.java:1617:in `each'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activemodel-4.0.2/lib/active_model/validations/with.rb:86:in `validates_with'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/vendor/bundle/jruby/1.9/gems/activemodel-4.0.2/lib/active_model/validations/acceptance.rb:51:in `validates_acceptance_of'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/app/models/user.rb:20:in `User'
       /tmp/build_f358186b-fb40-492f-93f9-f05fa7b3f751/app/models/user.rb:1:in `(root)'

【问题讨论】:

  • 好吧,请按照错误消息的建议进行操作。 “检查主机名和端口是否正确,并且邮件管理员正在接受 TCP/IP 连接。”以psql -h the_hostname -p the_port -U myusername the_databasename 开头。
  • 感谢您的评论!我可以设置这些设置吗?我以为我只需要 git push 即可开始部署,heroku 将在后台处理所有事情......
  • 哦,当应用程序在 Heroku 上推送和运行时出现错误,而不是在本地。在那种情况下,没关系。

标签: ruby-on-rails postgresql heroku ruby-on-rails-4 jruby


【解决方案1】:

所以这个真的很奇怪。

经过近一整天的调试,我能够解决问题。

它与 jRuby 无关,也与活动记录适配器无关(如果使用 ruby​​-Runtime 而不是 jruby-Runtime 将其推送到 heroku,则会出现非常相似的错误。

问题是由我的一个模型中的这条线引起的

validates_presence_of :terms_of_service

在将其注释掉并再次将其推送到 heroku 之后,一切都很好。

奇数...

【讨论】:

    【解决方案2】:

    你可以试试这个吗?

    在您的 YAML 文件中设置 username: systemuser, host: localhost

    如果上述解决方案不起作用,请参考此链接:

    http://www.revsys.com/writings/postgresql/errors.html

    希望这能解决您的问题!

    【讨论】:

    • 感谢您的回答。不幸的是,这并没有解决问题。我认为 Heroku 无论如何都会用它自己的配置覆盖 database.yml-File...
    猜你喜欢
    • 2012-05-26
    • 2020-05-22
    • 2019-04-30
    • 1970-01-01
    • 2011-09-20
    • 2021-07-26
    • 2012-02-21
    • 1970-01-01
    • 2015-12-14
    相关资源
    最近更新 更多