30

我已将 rails 3.1 应用程序部署到 Heroku Cedar 堆栈,并尝试执行:

heroku run rake db:migrate

它返回:

Running console attached to terminal... 
Error connecting to process

我也尝试简单地启动控制台:

heroku run console

任何运行命令都会返回相同的错误。

Running console attached to terminal... 
Error connecting to process

查看日志我得到错误代码:

2011-09-25T16:04:52+00:00 app[run.2]: Error R13 (Attach error) -> Failed to attach to process

当我heroku ps查看当前进程时,我可以看到我的尝试正在运行:

Process       State               Command
------------  ------------------  ------------------------------
run.2         complete for 26m    bundle exec rails console
run.3         up for 27s          bundle exec rails console
run.4         up for 3s           bundle exec rake db:create
web.1         up for 46s          bundle exec thin start -p $PORT -e..

但他们每个人都再次提出例外:

2011-09-25T16:31:47+00:00 app[run.3]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:31:47+00:00 heroku[run.3]: Process exited
2011-09-25T16:31:48+00:00 heroku[run.3]: State changed from up to complete
2011-09-25T16:32:11+00:00 app[run.4]: Error R13 (Attach error) -> Failed to attach to process
2011-09-25T16:32:11+00:00 heroku[run.4]: Process exited
2011-09-25T16:32:12+00:00 heroku[run.4]: State changed from up to complete

服务器管理员不是我的一杯茶,因此决定使用 Heroku。

Heroku 文档和谷歌搜索都没有让我走上一条让我继续前进的道路。

有任何想法吗?这不是我在 Bamboo stack 上的经验。

我的其他错误显然与未执行的数据库迁移有关。在我可以运行 rake 任务之前,我一直在前进。

4

7 回答 7

82

我有同样的问题,虽然我没有解决问题,但我找到了解决方法。

而不是使用:

heroku 运行 rake db:migrate

您可以使用:

heroku 运行:分离 rake db:迁移

这将在后台运行命令,将输出写入日志。完成后,您可以查看结果的日志。

不理想,但是当您的网络不足时,它会让您摆脱困境:)

于 2012-01-16T16:18:42.980 回答
17

此问题通常是由连接或防火墙问题引起的。您可以通过运行以下命令来测试与heroku run和服务器的连接:heroku console

$ telnet rendezvous.heroku.com 5000 
$ telnet s1.runtime.heroku.com 5000

(如果您能够成功连接,请按Ctrl+]然后键入quit退出 telnet 会话。)

一些用户在他们的防火墙中将这些主机名+端口组合列入白名单后取得了成功。

Heroku 在一次性流程的故障排除部分提到了这一点:http: //devcenter.heroku.com/articles/oneoff-admin-ps

需要很长时间才能启动的应用程序也会加剧连接问题。如果服务器响应不够快,您的本地连接将在应用程序启动之前超时。

于 2011-10-03T15:10:04.303 回答
4

这似乎是由于不同的原因而发生的。对我来说,原来是我安装了旧版本的 Heroku Toolbelt。它在自我更新版本之前,我还安装了旧版本的 heroku gems。在更新 heroku 工具带之前必须删除那些有任何影响。

这个页面被证明是有帮助的。首先阅读: https ://devcenter.heroku.com/articles/heroku-command#staying-up-to-date

找出您正在使用的 heroku toolbelt 版本(如果有),如下所示:

$ heroku version
heroku-toolbelt/2.xx.x 

如果它早于版本 2.32.0 则需要更新。如果您在响应中没有看到“heroku-toolbelt”,那么您需要安装它。

确保首先卸载任何旧的 heroku gem。运行下面的命令询问我是否也想删除可执行文件。正确答案是YES!如果您需要特定应用程序的 gem,您可以随时捆绑/安装。

$ gem uninstall heroku --all

如果您使用的是 rbenv,则可能需要重新散列:

$ rbenv rehash

清理掉旧的 gem 后,下载当前的 heroku 工具带并安装它。重新启动终端后一切都应该工作。

编辑:

我必须确保我的 rbenv 路径没有设置在 heroku cli 路径的前面。否则,旧 heroku gem 的任何捆绑/安装都会再次劫持 heroku 命令。我在 ~/.profile 文件的末尾添加了导出路径行,以便将其附加在任何 rbenv 路径之前。

$ vi ~/.profile
export PATH=/usr/local/heroku/bin:$PATH

重新加载终端表明这是通过运行和路径不在 /usr/local/heroku 中的

$ which heroku
/usr/local/heroku/bin/heroku
于 2014-11-17T22:23:56.573 回答
1

尝试安装最新版本的 heroku gem,然后再次运行这些“heroku run”命令。

于 2011-09-27T07:35:36.163 回答
0

这看起来像是 Heroku 的问题 - 在 Cedar 上运行的我的应用程序连接到控制台时出现错误。您输入的命令肯定没有做错任何事情。

于 2011-09-25T17:37:58.063 回答
0

已解决 - 使用 3G 系绳测试并收到响应,似乎不是防火墙;可能是代理或 ISP。

于 2011-11-13T17:00:20.623 回答
0

对我来说,升级我的 heroku toolbelt 和 cli 是有效的。我使用brew它看起来像这样:

brew upgrade heroku-toolbelt
于 2016-06-01T18:51:34.807 回答