マイグレーションファイルとテーブルの内容不一致によるエラー

・エラー内容

開発環境でユーザー管理機能の実装でLGTMを貰ったのでherokuにデプロイして本番環境での動作を確認しようとして以下のコマンドを実行

「git  push heroku master」「heroku run db:migrate」

すると以下の以下のエラー内容が表示された。

f:id:Fujisan3776:20201021222820p:plain

 

・原因

①開発環境時において、マイグレーションファイルのbirth_dateカラムには「null: falese,default: ""」を記述してローカルサーバーを起動すると上記と同じエラーが出た。

②そこで「null: falese,default: ""」を削除して保存し、マイグレーションを実行。

 

③その後、どこかでバリデーションが抜けてると思い込み、再びnull: falese,default: ""」

 ※この時マイグレーションはしなかった

 

④この状態で残りのユーザー管理機能の実装を施し、LGTMを貰ったので本番環境にデプロイしたので今回のエラーが生じた。

 

一言でまとめると、テーブル状態に問題はないが、マイグレーションファイルは問題のある記述のままデプロイしてしまった事が原因

 

・対処法

開発環境でマイグレーションロールバック

マイグレーションファイル内容の修正(null: falese,default: ""」を削除)

マイグレーションを実行

本番環境にデプロイ

本番環境でもマイグレーショ¥¥¥¥¥¥