Railsチュートリアル 1.5.2 Herokuへのデプロイで発生したエラーへの対処


はじめに

Railsチュートリアル1.5.1~1.5.3をそのまま実行していく中で発生したエラーです。
エラー時の状況

  1. herokuへのデプロイを実施
  2. $ git push heroku master には成功しているようだがネット上で表示されない
  3. rails server 上では問題なく表示される
  4. もう一度push herokuをすると「Everything up-to-date」と表示される

上記以外の状況の場合は最後に追記してあるのでそちらも見てみてください。

内容

  • 情報
  • 実行内容と発生したエラー
  • 解決方法
  • その他の問題の場合

情報

PC

  • MacBook Pro(15-inch,2019)
  • プロセッサ 2.6GHz 6コアIntel Corei7
  • メモリ 16GB 2400MHz DDR4
  • グラフィックス Intel UHD Graphics 630 1536 MB

開発環境

  • AWS Cloud9
  • Ruby 2.6.3
  • Ruby on Rails 5.1.7
  • Git 2.14.5
  • heroku/7.35.0 linux-x64 node-v12.13.0
  • Bitbucket

実行内容と発生したエラー

Railsチュートリアル1.5.1の手順に従いHerokuのセットアップ
1.5.2で下記を実行

qiita.rb
$ git push heroku master

問題なく終了したように見えたので帰ってきたURL(.gitと.comがある)を開く。

https://damp-fortress-5769.herokuapp.com
https://git.heroku.com/damp-fortress-5769.git

.gitは「Method Not Allowed」と表示されるだけなので注意。
.comの方を開くと「Application error」ログの詳細を確認しろとの表示。
だが、初心者なためログを見ても何が何だか分からず、とりあえずpush後の情報を確認。


一度目の物が消えてしまったのでこれと少し内容は違うがほぼ同内容が返ってきていた。
いくつかWARNIGが出ているがあまり重要ではないと判断。(ちなみに一度目は2つ目のWARNIGがGemにrailsのバージョンを記載しろというものだったのでその通りにしたが結果は変わらなかった)

解決方法

いくつか試したが多くのエラーパターンがあるように思われたので端的に解決に至ったもののみを記しておく。
この質問の通りにしたら解決した。
手順としては、

・ /hello_app/config/database.yml を開く
・ 内容を*1に書き換え
・ 変更を保存(⌘ + S)
・ $ git add .
・ $ git commit -m "change_database.yml"
・ $ git push
・ $ git push heroku master

これで無事デプロイに成功。
*1

default: &default
# adapter: sqlite3 を削除
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000

development:
<<: *default
adapter: sqlite3 # 追加
database: db/development.sqlite3

production:
<<: *default
adapter: postgresql
database: db/production.pg

その他の問題の場合

初心者だからこそのエラーパターンがいくつかあったので追記しておく。

  • SSH認証に失敗している
    メッセージが表示されているはずなのでもう一度手順通りに公開鍵を追加する。

  • .gitと.comのうち、.gitのURLを開いている
    .comのURLがデプロイされた物なのでそちらを開く
    あまりないと思うが質問サイトの投稿者の中にいた。

  • 変更内容を保存せずにaddやcommitをしている
    ほぼ無い状況だろうが自分が何回もやらかしているので一応