在没有CLI的情况下将schema.rb部署到Heroku

时间:2017-10-28 21:41:53

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

我正在使用我的大学的ISP阻止5000端口,所以我不能<link rel="stylesheet" href="/{{ media_url }}{{ css_source }}" type="text/css" /> 到heroku。我最近运行rake db:setup以便我可以创建一个新数据库,但现在我不知道如何设置它。有没有简单的方法来做到这一点?我见过很多关于heroku rake db:reset的文章,但我似乎无法弄清楚我需要投入的内容。如果我的5000端口被阻止,我如何设置我的postgres数据库?

修改:运行heroku pg:push时收到以下错误消息:heroku run rake db:migrate

编辑2 :以下是对ETIMEDOUT: connect ETIMEDOUT 50.19.103.36:5000

的回复

`

dig rendezvous.runtime.heroku.com

2 个答案:

答案 0 :(得分:1)

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

  

heroku run命令在端口5000上打开与Heroku的连接。如果您的本地&gt;网络或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或防火墙制造商继续解决这个问题。

您使用的是什么代理?由于heroku run没有进行HTTP调用,因此您最有可能对ISP阻塞端口5000,而是通过端口5000使用TCP连接并使用自己的协议。

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

$ heroku run:detached rake db:migrate

然后拖尾日志,看看发生了什么:

$ heroku logs -p run.1 -t   

除此之外,我不知道任何可以绕过5000端口阻挡的东西。

答案 1 :(得分:0)

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