furimaアプリ
デプロイ後、確認するとログイン/新規登録をしようとするとエラーが出て出来なかった。
herokuの状況を確認
% heroku logs
ターミナル
2021-07-22T02:46:32.871693+00:00 heroku[router]: at=info method=GET path="/users/sign_in" host=furima-35496.herokuapp.com request_id=924c5a12-c4f5-4410-afd0-9a1b5f3a5557 fwd="125.9.22.78" dyno=web.1 connect=58ms service=97ms status=500 bytes=1827 protocol=https
status 500 となっている。
HTTP statusコードによると<500>は下記の通り。
Internal Server Error サーバー内部エラー
ブラウザからのリクエストを適切に処理できない場合に表示されます。
ブラウザ変更、Cookieやキャッシュを削除してみてください。
上記を参考にした。
デプロイ後、migrateをしていないのが原因かと思い下記を実行。
% heroku run rails db:migrate
ダメだあああああ
データベースがherokuとローカルでは違うという記事を参考に下記を実行
group :development do
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'rubocop', require: false
gem 'pg', '~> 1.2.3', group: :production
end
(gem 'pg'・・・以下を追記しております。)
これでbundle installしたら下記のエラー
An error occurred while installing pg (1.2.3), and Bundler cannot continue.
Make sure that `gem install pg -v '1.2.3' --source 'https://rubygems.org/'` succeeds before bundling.
ああ、もうよくわからない
そもそも、参考にしている記事だと ローカル上⇒ SQLite Heroku⇒PostgreSQL にそれぞれ設定しなきゃいけないから、ここでエラーが出るんだよねっていう内容。
私のローカル上DB ⇒ mySQL
だからそもそも話が少し違う?
(mySQL / SQLite / PostgreSQLの違いを解説した記事)
カリキュラムを見直すと、むしろHerokuでmySQLを使えるように設定せよ、との事
% heroku addons:add cleardb
こちらをターミナルで実行。
Creating cleardb on ⬢ furima-35496... free
Created cleardb-triangular-78200 as CLEARDB_WHITE_URL
Use heroku addons:docs cleardb to view documentation
これでデプロイしたアプリを確認。ダメだ。
ただこれでmySQLをHerokuで使えるようになっているらしい。
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
ClearDBデータベースのURLを変数heroku_cleardbに格納
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
データベースのURLを再設定
ダメだああああ
こちらの記事を参考に、gitをインストールしてみる事に。
(今起きている事象が全く一緒。 rails sすらできなくなっている)
記事ではwindowsにgitをインストールする手法が書かれているので、mac用に下記を参考にする。
そもそもgitがインストールされているのかよく分からなかったため、記事に沿って下記を実行
% git --version
バージョンが出た。gitはインストールされているらしい。
記事によると最新版にするといいんだって。
% brew install git
色々試したが全部ダメ。
続いてこの記事を参考に下記を実行
rails new sample -G
gitをはずす?
だめだああああ (これ何回目?)
※ディレクトリの移動
cd projects
※furimaの削除
rm -rf furima-35496
※Githubからclone
git clone https://github.com/HARUNA3/furima-35496.git
※furimaのディレクトリに移動
cd furima-35496
% bundle install
% yarn install
結局、一度アプリを消してgit cloneする事なりました。
これで一応ファイルは元通り。やっと rails sも出来るようになりました・・・。
まあ上記ではデプロイちゃんと出来ていない状態に戻っただけなので、デプロイ後のアプリはやっぱりエラーが出ている。
メンターさんに助けを求めました。
メ) heroku configをしてみて下さい
=== furima-35496 Config Vars
BASIC_AUTH_PASSWORD: 略
BASIC_AUTH_USER: 略
CLEARDB_DATABASE_URL: mysql://略
CLEARDB_WHITE_URL: mysql://略
DATABASE_URL: mysql2
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_MASTER_KEY: 略
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: 略
メ) DATABASE_URLの所で、mysql2の後が何もない状態ですね。本来ならURLのようなものが続いているはずです。
DATABASEとのつながりがうまくいっていないのが原因かもしれないですね。
その後、指示通りに下記を実行
% heroku addons:add cleardb
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
メ) これでheroku configするとどうですか?
=== furima-35496 Config Vars
BASIC_AUTH_PASSWORD: 略
BASIC_AUTH_USER: 略
CLEARDB_DATABASE_URL: mysql://略
CLEARDB_WHITE_URL: mysql://略
DATABASE_URL: mysql2://be7df071fb6dfc:6b08c2ほにゃらら
LANG: en_US.UTF-8
RACK_ENV: production
RAILS_ENV: production
RAILS_LOG_TO_STDOUT: enabled
RAILS_MASTER_KEY: 略
RAILS_SERVE_STATIC_FILES: enabled
SECRET_KEY_BASE: 略
おおっ 何かついている!
メ) この状態で heroku run rails db:migrate を行ってみて下さい
何かいっぱい表示された。
メ) herokuでリロードしてみてどうですか?
解決しとるー!!!!!!
ありがとうございます!!!!!
てか、見返すと解決した方法と同じ事をやってるのに、その時はダメだった。何でなの????
この戦いには4時間を要しました。疲れた。終わり。