*初心者エンジニアが備忘録として書いております。間違いなどがあればご指摘ください。
発生したエラー
あらま。
発生した原因
heroku run rails db:migrateができていなかったことが原因でした。
できなかった原因は、どうやらmigrationファイルにあったようです。
I, [2023-06-24T14:48:45.112150 #2] INFO -- : Migrating to RemovePasseordFromUsers (20230624144428)
== 20230624144428 RemovePasseordFromUsers: migrating ==========================
-- remove_column(:users, :passeord, :string)
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
PG::UndefinedColumn: ERROR: column "passeord" of relation "users" does not exist
解決方法
①問題のマイグレーションファイルの中身を消す
class RemovePasseordFromUsers < ActiveRecord::Migration[7.0]
def change
end
end
②userモデルを作り直す
$ rails destroy model [モデル名]
新しくモデルを作り直します。
$ rails g model User name:string email:string password:string image_name: string
$ rails db:migrate
③改めてherokuにpush!
$ git push heroku develop:main
ちなみに私はfailed to push some refs to のエラーが発生したため、強制pushを行いました。↓↓
$ git push heroku develop:main --force
そして改めてherokuアプリを見たら無事解決!
一言
マイグレーションファイルは常に美しくあれ。(ホイホイ作り直すと後で後悔する羽目に、、、)