Heroku: 无法运行超过1个免费大小的dynos

109

我试图运行

heroku run rake db:migrate

我遇到了以下错误:

无法运行超过1个自由大小的dyno。

请参阅下面的解决方法...

7个回答

188

最有效的

在控制台中运行:

heroku ps

结果有点像这样:

run.4859 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c

因此,数字4859代表需要关闭的会话。要修复错误,您需要运行(显然,将数字4859替换为获得的数字):

heroku ps:stop run.4859

这是一个非常简单的解决方案。


1
这对我很有帮助。而且这个答案比被采纳的答案更详细。 - Barun
Thank you uomo_perfectto - Two

132

答案是查找任何开放的heroku会话(如John在上面指出的使用“heroku ps”),在我的情况下,我已经开始了一个heroku控制台会话30分钟,只是忘记了它。因此,如果您看到“不能运行多个免费大小dynos”错误,请关闭您打开的任何现有控制台或其他heroku会话。

希望这能节省某人花费十分钟的时间。


30
你可以通过运行 heroku ps 然后使用 heroku ps:stop <DYNO> 命令来停止这个进程。 - John Beynon
15
@JohnBeynon 我喜欢这个回答,救了我的狗屁!FYI 给其他人:第一个命令(heroku ps)类似于Linux的"netstat",会显示正在运行的进程。在我的情况下,它看起来像run.5656 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c。如你所见,我错把Rails控制台留开了。所以我只需要运行heroku ps:stop run.5656。轻而易举 :) 谢谢 John! - B. Bulpett
2
或者尝试:heroku ps:stop run.9121 --app my-app-name。我的 bash 号码是 9121。你可以用 heroku ps 查看你的号码。 - multigoodverse
1
十分钟就可以了,我需要14个小时;-) - 我以为这是一个codeship的问题(请参见http://stackoverflow.com/questions/37683102/running-migrations-when-deploying-django-app-to-heroku-with-codeship/37693327#37693327) - OBu
2
将自己的答案标记为“解决方案”会很有帮助,因为它可以帮助其他浏览类似主题的人。 - OBu
显示剩余2条评论

6
有完全相同的问题,来到了这个页面。读完后意识到发生了什么,但想要添加以下内容。
只需运行即可。
heroku kill DYNO --app your_app_name

在此之后关闭所有打开的控制台。
然后运行db migrate命令,它会起作用。

2
在我的情况下,我运行了heroku ps:restart来重启所有的dynos,然后heroku run *命令又可以正常工作了。 示例 如果你只有一个Heroku的Git远程,使用以下命令: heroku ps:restart && heroku run * 如果你有多个Heroku的Git远程,请使用以下命令: heroku ps:restart --remote your-remote-name && heroku run * --remote your-remote-name 或者 heroku ps:restart --app your-heroku-app-name && heroku run * --app your-heroku-app-name*替换为您的命令,例如Rails控制台中的console
这里所说的your-heroku-app-name是您的Heroku应用程序的子域名。例如,如果您的应用程序URL是https://cute-cat.herokuapp.com,那么your-heroku-app-name就是cute-cat
如果您不确定/忘记了Heroku的Git远程名称,git remote -v可以帮助您查找。
示例:
$ git remote -v
this-is-the-remote-name      https://git.heroku.com/xxx.git (fetch)
this-is-the-remote-name      https://git.heroku.com/xxx.git (push)
this-is-another-remote-name  https://git.heroku.com/yyy.git (fetch)
this-is-another-remote-name  https://git.heroku.com/yyy.git (push)

1
只需重新启动所有的dynos。

heroku restart


0
对我来说,在Web运行控制台上只有一个命令在运行,我在那里结束了它的会话,问题就解决了。

-1

注意:Heroku免费套餐即将结束

"如果我不对我的免费应用程序或数据库采取任何措施,或者不升级到付费计划会发生什么情况?

免费dynos将缩减至0,hobby-dev数据库将从2022年11月28日开始删除。"

“从2022年11月28日开始,将不再提供免费的Heroku Dynos、免费的Heroku Postgres和免费的Heroku Data for Redis®计划。如果您的应用程序使用了这些资源中的任何一个,您必须在此日期之前升级到付费计划,以确保您的应用程序继续运行并保留您的数据。请参阅我们的博客和常见问题解答以获取更多信息。”

REF:

https://blog.heroku.com/next-chapter

https://devcenter.heroku.com/articles/free-dyno-hours

https://help.heroku.com/RSBRUH58/removal-of-heroku-free-product-plans-faq


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接