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 ...
Antworten:
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.
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.
heroku ps
und dann tun heroku ps:stop <DYNO>
, um den Prozess zu stoppen.
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!
heroku ps:stop run.9121 --app my-app-name
Meine Bash-Nummer war 9121
. Sie können Ihre mit sehenheroku ps
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.
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 console
für Rails-Konsole.
Was ich hier damit gemeint your-heroku-app-name
habe, 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-name
sind cute-cat
.
Wenn Sie nicht sicher sind / vergessen haben, wie Ihr Git-Remote-Name für Heroku lautet, git remote -v
kö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)