0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ローカルでは正常に作動するのに、デプロイしたらサーバーエラーになっていた

Last updated at Posted at 2021-07-25

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やキャッシュを削除してみてください。

https://qiita.com/hmmrjn/items/e2dff8036fbbd74f049a

上記を参考にした。
デプロイ後、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

だからそもそも話が少し違う?

https://bigdata-tools.com/sql-db/

(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を再設定

ダメだああああ

https://qiita.com/Leone/items/dc7f8ef2d5329d297e72

こちらの記事を参考に、gitをインストールしてみる事に。
(今起きている事象が全く一緒。 rails sすらできなくなっている)

記事ではwindowsにgitをインストールする手法が書かれているので、mac用に下記を参考にする。

https://tracpath.com/bootcamp/git-install-to-mac.html

そもそもgitがインストールされているのかよく分からなかったため、記事に沿って下記を実行

%  git --version

バージョンが出た。gitはインストールされているらしい。
記事によると最新版にするといいんだって。

%  brew install git

色々試したが全部ダメ。
続いてこの記事を参考に下記を実行

https://note.com/kiwikiwi_1959/n/ne3b8ab6165c5

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時間を要しました。疲れた。終わり。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?