私は走ろうとしていました
heroku run rake db:migrate
そして、エラーが発生していました
複数のフリーサイズダイノを実行することはできません。
修正方法については、以下を参照してください...
回答:
最も効果的
コンソール実行時:
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が以下で指摘しているように「herokups」を使用できます)。私の場合、30分前にすでにherokuコンソールセッションを開始していて、それを忘れていました。したがって、「複数のフリーサイズdynoを実行できません」というエラーが表示された場合は、開いている既存のコンソールまたは他のHerokuセッションをすべて閉じてください。
うまくいけば、これは私が私の感覚に達するのにかかった10分を誰かに節約するでしょう。
heroku ps
してheroku ps:stop <DYNO>
から、プロセスを停止します。
heroku ps
)はLinuxの「netstat」のようなものです。実行中のプロセスが表示されます。私の場合、それはのように見えましたrun.5656 (Free): up 2016/01/12 21:28:41 (~ 7m ago): rails c
。ご覧のとおり、誤ってRailsコンソールを開いたままにしました。だから私がしなければならなかったのは実行することだけでしたheroku ps:stop run.5656
。Easy Peasy :)ありがとうジョン!
heroku ps:stop run.9121 --app my-app-name
私のbash番号はでした9121
。あなたはであなたを見ることができますheroku ps
私の場合、実行heroku ps:restart
してすべてのdynoを再起動すると、heroku run *
コマンドが再び機能しました。
例
Heroku用のGitリモートが1つしかない場合は、次を使用します。
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)