【问题标题】:Heroku rake db:migrate results in Error R13 (Attach error) -> Failed to attach to processHeroku rake db:migrate 导致错误 R13(附加错误)-> 无法附加到进程
【发布时间】:2014-01-22 11:11:03
【问题描述】:

我在 heroku 上有一个 rails 应用程序,我无法运行我最新的数据库更改。运行heroku run rake db:migrate 给了我

Running `rake db:migrate` attached to terminal... up, run.3167
!    Heroku client internal error.
!    Search for help at: https://help.heroku.com
!    Or report a bug at: https://github.com/heroku/heroku/issues/new

Error:       Operation timed out - connect(2) (Errno::ETIMEDOUT)
Backtrace:   /Users/gregg/.heroku/client/lib/heroku/client/rendezvous.rb:40:in `initialize'
             /Users/gregg/.heroku/client/lib/heroku/client/rendezvous.rb:40:in `open'
             /Users/gregg/.heroku/client/lib/heroku/client/rendezvous.rb:40:in `block in start'
             /usr/local/heroku/ruby/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
             /Users/gregg/.heroku/client/lib/heroku/client/rendezvous.rb:31:in `start'
             /Users/gregg/.heroku/client/lib/heroku/command/run.rb:132:in `rendezvous_session'
             /Users/gregg/.heroku/client/lib/heroku/command/run.rb:119:in `run_attached'
             /Users/gregg/.heroku/client/lib/heroku/command/run.rb:24:in `index'
             /Users/gregg/.heroku/client/lib/heroku/command.rb:218:in `run'
             /Users/gregg/.heroku/client/lib/heroku/cli.rb:28:in `start'
             /usr/bin/heroku:24:in `<main>'

Command:     heroku run rake db:migrate
Version:     heroku-toolbelt/3.2.1 (x86_64-darwin10.8.0) ruby/1.9.3

当我跟踪日志时,我看到以下内容:

2014-01-04T20:27:56.438268+00:00 heroku[run.3167]: Awaiting client
2014-01-04T20:27:56.531495+00:00 heroku[run.3167]: State changed from starting to up
2014-01-04T20:26:58.751010+00:00 heroku[router]: at=info method=GETpath=/assets/SanukWebPro-Light.woff host=stormy-savannah-1911.herokuapp.com fwd="98.210.221.215" dyno=web.1 connect=6ms service=134ms status=200 bytes=38568
2014-01-04T20:27:11.027485+00:00 heroku[router]: at=info method=GET path=/articles/new host=stormy-savannah-1911.herokuapp.com fwd="98.210.221.215" dyno=web.1 connect=3ms service=54ms status=200 bytes=7577
2014-01-04T20:28:26.446139+00:00 heroku[run.3167]: Error R13 (Attach error) -> Failed to attach to process
2014-01-04T20:28:27.994826+00:00 heroku[run.3167]: Process exited with status 128
2014-01-04T20:28:28.005837+00:00 heroku[run.3167]: State changed from up to complete

【问题讨论】:

  • 你试了多少次,有没有等一下再试?

标签: ruby-on-rails heroku rake dbmigrate


【解决方案1】:

尝试在后台运行它:

heroku run:detached rake db:migrate

https://devcenter.heroku.com/articles/one-off-dynos#running-tasks-in-background

【讨论】:

  • 也适用于我,但您能解释一下为什么需要这样做吗?
  • 原因错误是:Failed to attach to process in Running rake db:migrate attached to terminal。所以解决方案是分离运行它。没有关于2014-01-04T20:28:26.446139+00:00 heroku[run.3167]: Error R13 (Attach error) -&gt; Failed to attach to process的想法
  • 我想了解为什么“run:detached”可以解决问题,以供将来参考。我知道它有效,但不知道它为什么有效。
  • @BobDoolittle run:detached 并不能完全解决问题,它只是不尝试附加,因此附加不会失败。一般来说,heroku run 意味着您的本地控制台将附加到您在一次性测功机中运行的命令,您将能够看到它的输出并与之交互(stdin、stdout、stderr)已连接。另一方面,heroku run:detached 不会连接您的本地控制台。您将无法与之交互(没有标准输入),您必须检查日志以查看命令是否成功。
  • @hheimbuerger 谢谢,但我们知道为什么在运行此命令时连接到本地控制台首先会失败吗?
【解决方案2】:

运行后

    heroku run:detached rake db:migrate

我能够成功运行

    heroku run rake db:migrate 

【讨论】:

  • 我认为这是因为一旦它在分离运行时成功完成,第二次调用它(没有“分离”)什么都不做 - 数据库已经设置好了。
猜你喜欢
  • 2015-07-16
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2015-04-10
相关资源
最近更新 更多