Herokuデプロイはいつも難儀だ。
きつい。からのきつい。泣く。
それが自分のデプロイに対するイメージだ。
それもこれも、それぞれの工程をメモもせず取り敢えずかたっぱしからやってしまうからいけないのだが。
やっとの思いで解決できたので、まず解決法をババっと書いとこうというかんじで。
1.Procfileってなんやねん。
Herokuデプロイのためには必要なファイルらしく、RailsプロジェクトのRoot直下に作成しておかないといけないらしい。
そして中身に
web: bundle exec puma -C config/puma.rb
と書いておく。
ここでデプロイしてみようと思い、gitコマンドでHerokuにPush!!
だがここで問題が、
###### WARNING:
No Procfile detected, using the default web server.
We recommend explicitly declaring how to boot your server process via a Procfile.
https://devcenter.heroku.com/articles/ruby-default-web-server
-----> Discovering process types
~ Mis-cased procfile detected; ignoring.
~ Rename it to Procfile to have it honored.
Procfile declares types -> (none)
Default types for buildpack -> console, rake, web, worker
少し「?」となったが、ログにある通りファイル名をみてみると、なるほど。
「procfile」となっていた。
どうやら「procfile」ではなく、「Procfile」。始めの「p」を大文字にしないと受け付けねーぞこのやろうと言っているのだ。なんたる初見殺し。分かんねーよ。
そこで、名前を「Procfile」と直し、もう一度デプロイ。
その結果。
Everything up-to-date
いやいやいや。変更したぞ。あなたは意固地ですかHeroku先輩そうですか。
そこから悩みに悩み、30分ほど経過したとき、
ある記事にこんなことが書いてあった。
「gitはデフォルト仕様で、ファイルネームの大文字小文字を区別しない可能性があります。」
git、お前もか。
またもや初見殺し。
なんですか?
僕、しょぼーんでもやってるんですか?
つまり、「Procfile」とファイル名を直してもgitには反映されず、「procfile」となるそう。
これを反映させるには、
gitの設定を変える。
一度procfile自体を削除してgit commit を行い、その後Procfileを作り直してgit commitする。
の2つの対処法があるそう。
今回は時間がないので、2の方法を取りました。エラーが消え、無事解決。
2. $ heroku run rake db:migrateを忘れずに。
Procfile問題も解決したし、これでやっと見れるのか俺のwebアプリと思い、openしてみると
「We are sorly but ...」の文字が。まじかよ。
ここからネットサーフィン。1時間くらい波に乗ってると、heroku側でデータベースを作らないといけないことが判明。そういえばそんなもんあったな。(忘れんなよ)
てことで、railsプロジェクトのルート直下にて、
$ heroku run rake db:migrate
を打ち込み、データベースがmigrateされていって無事開けるように。はー疲れた。
まとめ
メモは大事。