heroku运行控制台返回'错误连接到进程'

jdc*_*ens 30 ruby-on-rails heroku ruby-on-rails-3.1 rails-3.1 cedar

我已经将一个rails 3.1应用程序部署到了Heroku Cedar堆栈,我正在尝试执行:

heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)

它返回:

Running console attached to terminal... 
Error connecting to process
Run Code Online (Sandbox Code Playgroud)

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

heroku run console
Run Code Online (Sandbox Code Playgroud)

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

Running console attached to terminal... 
Error connecting to process
Run Code Online (Sandbox Code Playgroud)

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

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

当我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..
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

Heroku docs和Google搜狗都没有让我走上一条让我继续前进的道路.

有任何想法吗?这不是我在Bamboo堆栈上的经验.

我的其他错误显然与未执行的数据库迁移有关.直到我可以执行rake任务,我才能继续前进.

小智 81

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

而不是使用:

heroku运行rake db:migrate

您可以使用:

heroku run:detached rake db:migrate

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

不理想,但当你在一个不适当的网络,它会让你走出一个洞:)


kch*_*kch 17

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

$ telnet rendezvous.heroku.com 5000 
$ telnet s1.runtime.heroku.com 5000
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

  • Heroku使用通常被公司ISP等禁止的端口运气不好http://www.linklogger.com/TCP5000.htm (2认同)