我试图运行
heroku run rake db:migrate
并且得到错误
不能运行超过1个可用大小的dynos。
请参阅以下内容了解如何修复。。。
最有效
控制台运行中:
heroku ps
结果是这样的:
run.4859 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c
因此,数字4859表示打开并且需要关闭的会话。要修复您需要运行的错误(显然,将数字4859替换为获得的数字):
heroku ps:stop run.4859
这是一个非常简单的解决方案。
答案是寻找任何打开的heroku会话(正如john上面指出的,你可以使用"heroku-ps"),在我的情况下,我已经在30分钟前启动了一个heroku控制台会话,但却忘记了它;不能运行超过1个自由大小的dynos";error只需关闭您打开的任何现有控制台或其他heroku会话。
希望这能让我在十分钟内清醒过来。
遇到了完全相同的问题,来到了本页。阅读后意识到发生了什么,但想添加以下内容。
只运行
heroku kill DYNO --app your_app_name
在此之后,关闭所有打开的控制台。
然后运行db migrate命令,它就会工作。
在我的情况下,我运行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)
只需重新启动所有dynos。heroku restart
对我来说,有一个命令在web运行控制台上运行,我刚刚结束了它在那里的会话,它得到了解决。
注意:Heroku免费层即将消失
"如果我不对我的免费应用程序或数据库采取行动,或者不升级到付费计划,会发生什么?
从2022年11月28日开始,免费dynos将缩小到0,业余爱好开发数据库将被删除;
"从2022年11月28日开始,免费的Heroku Dynos、免费的Herooku Postgres和Redis®计划的免费Heroku Data将不再可用。如果你有使用这些资源的应用程序,你必须在此日期之前升级到付费计划,以确保你的应用程序继续运行并保留你的数据。有关更多信息,请参阅我们的博客和常见问题解答"
参考:
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