Heroku: Es können nicht mehr als 1 Dynos in freier Größe ausgeführt werden

82

Ich habe versucht zu rennen

heroku run rake db:migrate

Und bekam den Fehler

Es können nicht mehr als 1 Dynos mit freier Größe ausgeführt werden.

Weiter unten erfahren Sie, wie Sie das Problem beheben können ...

Andrew
quelle

Antworten:

116

Am effektivsten

im Konsolenlauf:

heroku ps

Das Ergebnis ist ungefähr so:

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

Die Zahlen 4859 stehen also für die Sitzung, die geöffnet ist und geschlossen werden muss. Um den Fehler zu beheben, den Sie ausführen müssen (Ersetzen Sie offensichtlich die Nummer 4859 durch die erhaltene Nummer):

heroku ps:stop run.4859

Es ist eine sehr einfache Lösung.

uomo_perfetto
quelle
Das hat mir geholfen. Und diese Antwort ist aussagekräftiger als die akzeptierte Antwort.
Barun
127

Die Antwort ist, nach offenen Heroku-Sitzungen zu suchen (Sie können 'Heroku ps' verwenden, wie John unten ausführt). In meinem Fall hatte ich bereits 30 Minuten zuvor eine Heroku-Konsolensitzung gestartet und habe sie einfach vergessen. Wenn der Fehler "Kann nicht mehr als 1 Dynos mit freier Größe ausführen" angezeigt wird, schließen Sie einfach eine vorhandene Konsole oder andere geöffnete Heroku-Sitzungen.

Hoffentlich erspart dies jemandem die zehn Minuten, die ich gebraucht habe, um zur Besinnung zu kommen.

Andrew
quelle
29
Sie würden dies über heroku psund dann tun heroku ps:stop <DYNO>, um den Prozess zu stoppen.
John Beynon
14
@ JohnBeynon Ich mag dies als richtige Antwort. Rettete meinen Hintern! Zu Ihrer Information für andere: Der erste Befehl ( heroku ps) ist wie Linux "netstat". Zeigt Ihnen, wie Prozesse ausgeführt werden. In meinem Fall sah es so aus run.5656 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c. Wie Sie sehen, habe ich versehentlich die Rails-Konsole offen gelassen. Also musste ich nur rennen heroku ps:stop run.5656. Easy Peasy :) Danke John!
B. Bulpett
2
Alternativ versuchen Sie: heroku ps:stop run.9121 --app my-app-nameMeine Bash-Nummer war 9121. Sie können Ihre mit sehenheroku ps
multigoodverse
1
Zehn Minuten sind ziemlich gut, ich brauchte 14 Stunden ;-) - Ich dachte, es sei ein Code-Problem (siehe stackoverflow.com/questions/37683102/… )
OBu
2
Es wäre gut, Ihre eigene Antwort als "Lösung" zu markieren, da dies anderen hilft, nach ähnlichen Themen zu suchen.
OBu
6

Hatte genau das gleiche Problem und kam auf diese Seite. Nach dem Lesen wurde klar, was los war, aber ich möchte folgendes hinzufügen.

Renn einfach

heroku kill DYNO --app your_app_name

Danach schließen Sie alle offenen Konsolen.

Führen Sie dann den Befehl db migrate aus, es wird funktionieren.

Manas
quelle
1

In meinem Fall lief ich heroku ps:restart, um alle Dynos neu zu starten, und der heroku run *Befehl funktionierte erneut.

Beispiele

Wenn Sie nur eine Git-Fernbedienung für Heroku haben, verwenden Sie diese:

heroku ps:restart && heroku run *

Wenn Sie mehrere Git-Fernbedienungen für Heroku haben, verwenden Sie diese:

heroku ps:restart --remote your-remote-name && heroku run * --remote your-remote-name

ODER

heroku ps:restart --app your-heroku-app-name && heroku run * --app your-heroku-app-name

Ersetzen Sie *durch Ihren Befehl zB consolefür Rails-Konsole.


Was ich hier damit gemeint your-heroku-app-namehabe, ist die Subdomain für Ihre Heroku-App. Zum Beispiel, wenn Sie Ihre App - URL ist https://cute-cat.herokuapp.com, dass Mittel your-heroku-app-namesind cute-cat.

Wenn Sie nicht sicher sind / vergessen haben, wie Ihr Git-Remote-Name für Heroku lautet, git remote -vkönnen Sie Ihnen dabei helfen.

Beispiel:

$ 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)
Zulhilmi Zainudin
quelle