【问题标题】:Deploying schema.rb to Heroku without CLI在没有 CLI 的情况下将 schema.rb 部署到 Heroku
【发布时间】:2017-10-28 21:41:53
【问题描述】:

我正在使用我大学的 ISP,它阻止了 5000 端口,所以我不能 rake db:setup 到 heroku。我最近运行了heroku rake db:reset,以便我可以创建一个新数据库,但现在我不知道如何设置它。有什么简单的方法可以做到这一点?我看过很多关于heroku pg:push 的文章,但我似乎无法弄清楚我需要为此添加什么。鉴于我的 5000 端口被阻止,我该如何设置我的 postgres 数据库?

编辑:运行heroku run rake db:migrate 时出现以下错误消息:ETIMEDOUT: connect ETIMEDOUT 50.19.103.36:5000

编辑2:这是对dig rendezvous.runtime.heroku.com的回复

`

<<>> DiG 9.8.3-P1 <<>> rendezvous.runtime.heroku.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49376
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 13, ADDITIONAL: 5

;; QUESTION SECTION:
;rendezvous.runtime.heroku.com. IN  A

;; ANSWER SECTION:
rendezvous.runtime.heroku.com. 450 IN   CNAME   ec2-50-19-103-36.compute-1.amazonaws.com.
ec2-50-19-103-36.compute-1.amazonaws.com. 604800 IN A 50.19.103.36

;; AUTHORITY SECTION:
compute-1.amazonaws.com. 1  IN  NS  pdns1.ultradns.net.
compute-1.amazonaws.com. 1  IN  NS  ns4.p31.dynect.net.
compute-1.amazonaws.com. 1  IN  NS  pdns3.ultradns.org.
compute-1.amazonaws.com. 1  IN  NS  u4.amazonaws.com.
compute-1.amazonaws.com. 1  IN  NS  u3.amazonaws.com.
compute-1.amazonaws.com. 1  IN  NS  ns3.p31.dynect.net.
compute-1.amazonaws.com. 1  IN  NS  ns2.p31.dynect.net.
compute-1.amazonaws.com. 1  IN  NS  pdns5.ultradns.info.
compute-1.amazonaws.com. 1  IN  NS  u6.amazonaws.com.
compute-1.amazonaws.com. 1  IN  NS  u1.amazonaws.com.
compute-1.amazonaws.com. 1  IN  NS  ns1.p31.dynect.net.
compute-1.amazonaws.com. 1  IN  NS  u5.amazonaws.com.
compute-1.amazonaws.com. 1  IN  NS  u2.amazonaws.com.

;; ADDITIONAL SECTION:
pdns1.ultradns.net. 1970    IN  A   204.74.108.1
pdns1.ultradns.net. 1970    IN  AAAA    2001:502:f3ff::1
ns3.p31.dynect.net. 69968   IN  A   208.78.71.31
pdns3.ultradns.org. 12753   IN  A   199.7.68.1
pdns3.ultradns.org. 43539   IN  AAAA    2610:a1:1015::1

;; Query time: 72 msec
;; SERVER: 152.19.240.8#53(152.19.240.8)
;; WHEN: Sat Oct 28 19:50:08 2017
;; MSG SIZE  rcvd: 500`

【问题讨论】:

  • 运行heroku run rake db:migrate 时遇到的错误是什么?请将其添加到您的帖子中。另请查看devcenter.heroku.com/articles/one-off-dynos#troubleshooting
  • 我查看了该页面,但我无法让我的 IT 部门打开 5000 端口,因为它是 Windows 恶意软件的常见位置。刚刚在执行heroku run rake db:migrate 时添加了我的代码结果。我只是想找到一种方法来迁移我的 schema.rb。我已经尝试过heroku run:detached rake db:setup,但没有成功。不知道为什么。
  • 你能运行dig rendezvous.runtime.heroku.com 并显示输出吗?
  • 刚加到原版上。

标签: ruby-on-rails postgresql heroku command-line-interface


【解决方案1】:

好的,所以我阅读了Heroku documentation 我发现了这个:

heroku run 命令在端口 5000 上打开与 Heroku 的连接。如果您的本地 >network 或 ISP 阻塞了端口 5000,或者您正在 遇到连接问题,您将看到类似于以下内容的错误:

  $ heroku run rails console
    Running rails console attached to terminal...
    Timeout awaiting process

您可以通过尝试直接连接来测试您与 Heroku 的连接 使用 telnet 到端口 5000 上的 rendezvous.runtime.heroku.com。一种 成功的会话将如下所示:

  $ telnet
    rendezvous.runtime.heroku.com 5000 Trying 50.19.103.36...
    Connected to ec2-50-19-103-36.compute-1.amazonaws.com. 
    Escape character >is '^]'

如果你没有得到这个输出,你的电脑被阻止了 访问我们的服务。我们建议联系您的 IT 部门, ISP 或防火墙制造商来解决这个问题。

您使用的是什么代理?您的 ISP 阻止端口 5000 很可能是正确的,因为 heroku run 不进行 HTTP 调用,而是使用 TCP 通过端口 5000 连接并使用自己的协议。

我发现这个Stackoverflow post 提到通过在后台运行命令来解决这个问题:

$ heroku run:detached rake db:migrate

然后跟踪日志以查看发生了什么:

$ heroku logs -p run.1 -t   

除此之外,我不知道有什么可以绕过 5000 端口上的阻塞。

【讨论】:

    【解决方案2】:

    经过大量工作,我发现这只是我大学的一个端口块。如果您遇到这个问题并且正在上大学,那么解决这个问题的最佳方法就是去当地一家提供免费无线网络的咖啡店。 Heroku CLI 运行rails consolerake db:migrate 和许多其他命令所依赖的端口依赖于您能够通过该端口保持连接并且无法正常工作。感谢 Cyzanfar 的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-23
      • 2020-12-14
      • 1970-01-01
      • 2021-01-14
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2019-08-23
      相关资源
      最近更新 更多