Herokuにpushできたのにアプリケーションが動作してなかった
Railsプロジェクトがデプロイできるところまで作れたので
試しに作業中のブランチを(まだmasterにmergeしてないので)pushしてみるか!と思ってやってみた
$ git push heroku <branch-name>
のはいいんだけど、heroku create
したときの灰色の画面のままだった…
結論
pushした時のコマンドが間違っていたので
正しくpushができていなかった(泣
試したこと
1. migrateする
例の灰色の画面(スクショ撮り忘れた)のままだったので とりあえずmigrateしてみる
$ heroku run rails db:migrate
rails db:create
はpush時にやってくれるけど
migrateは自分でやらないといけないのでね
そしたらrails: command not found
って言われた
2. bundle install する
railsがないってことはbundle install
したらよい?
$ heroku run bundle install
結果、bundle: command not found
ほんとうに…?
3. gem install bundler する
bundle コマンドが叩けないってことはbundler がないってことなので bundlerインストールしたらよい?
$ heroku run gem install bundler
そしたら今度はpermissionがなんとかって言われてエラーになった(どんなエラーかあんま覚えてない)
4. ファイル構成を確認する
permissionとか言われたから管理者だれになってるんだろう?と思って確認してみた
$ heroku run ll
ll
コマンドはls -l
のことですね。
結果なにも返ってこなかったので、「空ってことはpushがうまくできてないのでは!?」ということに気がついた…!!!
解決策
$ git push heroku <branch-name>
をもう一度実行してみる
と、問題なくpushはできる…特にエラーになったりはしていない模様…
調べていたところ、master以外のブランチをpushする時は
$ git push heroku <branch-name>:master
じゃないといけないということがわかった!!!!
ようするに、「どのブランチを」「どのブランチに」pushするのかを指定しないといけなかったっぽい。 普通に考えたら当たり前ではある。
$ git push heroku branch-name:master
で、ちゃんと表示できました!!!
pushがエラーにならずにできていたのは確かにその通りで、
でもHerokuがアプリケーションとして公開しているのはmasterブランチだけなので、例の灰色の画面が出ていた、という…。
確かにHerokuってmaster以外のブランチ指定してstaging環境とか作れますもんね。
補足
GitHubにpushするときも、
$ git push origin master
とかやるんだけど、
これって実は内部的には
$ git push origin master:master
をやっている。
同じ名前のブランチにpushする時は省略できるけど、そうじゃないときはちゃんと指定してねってことでした。
おわり。