0
0

More than 3 years have passed since last update.

(Capistrano)デプロイ後、本番環境でWe're sorry…のエラーが出てしまう

Last updated at Posted at 2020-08-18

ローカル環境で問題なく動いたアプリを自動デプロイした際に、本番環境でエラーが出てしまいビューが表示されない
となると何をして良いかわからず絶望的な気持ちになりますよね。。。
スクリーンショット 2020-08-17 8.01.24.png
そんな時に解決方法の一つとして是非お試しください。

結論: drop,createは手動で、migrateは自動で

ec2にログインをし、手動でコマンドを打ちデータベースのdrop,createだけを行います。
その後、Capistranoの自動デプロイでmigrateをさせるという方法でページが表示できるようになりました。

コマンド

ec2にログインをしたら、まずは以下のコードを実行し、本番環境上でのデータベースの削除、作成までを行いましよう。

cd /var/www/<%アプリケーション名%>

cd current

rails db:drop RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1

rails db:create RAILS_ENV=production

その後、unicorn、mysqlの再起動も行います。(右側に長いコードです)

ps aux |grep unic 

//実行結果(番号は異なります)
ec2-user 24327  0.1 11.5 504288 116388 ?       Sl   22:46   0:02 unicorn master -c /var/www/<%アプリケーション名%>/current/config/unicorn.rb -E production -D                                                                                            
ec2-user 24334  0.0 12.3 651728 124368 ?       Sl   22:46   0:00 unicorn worker[0] -c /var/www/<%アプリケーション名%>/current/config/unicorn.rb -E production -D

kill -9 24327 //masterのプロセス番号24327を入力

sudo service mysqld restart //mysqlを再起動

最後にローカルのターミナルに戻り自動デプロイ
マイグレーションはこの時点で行われます。

bundle exec cap production deploy

完了です!

まとめ

特に特殊な操作は行なっていませんが、capistranoのmigrate機能を利用するという所がミソですね。
なぜこれでうまく行ったかはわかりませんが、これからも本番環境でのエラーは色々と試行をする必要がありそうです。。。

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