本番環境でのDBに関するエラー

【共有】
本番環境でのDBに関するエラー
furimaアプリを本番環境にデプロイする際に参考になりそうだったので共有します。

・エラー内容
アプリを本番環境にデプロイしたところ以下のエラーが出た(Mysql〜となるのでDB関係のものと分かる)。

f:id:Fujisan3776:20201111153724p:plain

・原因
renameコマンドを使ったマイグレーションファイルを使用したこと。
(メンターの方曰く、経験上、本番環境でrename等の行数の短いマイグレーションファイルを使用するとエラーが起きやすいそうです。)

 

・対処法
開発環境に戻り、renameコマンドのマイグレーションを削除

マイグレーションをrolbackし、対象のモデル本体のマイグレーションファイルのカラム名を修正

開発環境で再度マイグレーションとDBのリセットを実施

本番環境にデプロイ

本番環境でもDBをリセット
※本番環境でのDBリセットは以下を使用
「heroku run rails db:migrate:reset REILS_ENV=prodction DISABLE_DATABASE_ENVIRONMENT_CHECK=1」

 

<コメント>

・小さいmigrationファイルをチョコチョコ作るとエラーになりやすいので、カラム名を修正したいときはrollbackして書き直してリセットした方が無難という理解であってますか?

・その通りです!
マイグレーションファイル自体が設計図のようなものなので、小さいマイグレーションファイルをチョコチョコ作ると、
沢山設計図ができて、エラーが起きやすくなるそうです。