#StandardError: An error has occurred, all later migrations canceled:エラーの解決法について
rails db:migrateしようとした際にでたエラーです。
エラーが発生したのでマイグレーションキャンセルしたよ!というエラーですね。
##ActiveRecord::StatementInvalid: Mysql2::Error: Table 'アプリ名_development.カラム名' doesn't exist: SHOW FULL FIELDS FROM users
エラーをみていくとこのような文がありました。
##原因
原因はマイグレーションファイルでした。
class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.string :content
t.references :user, foreign_key: true
t.timestamps
end
end
end
referencesはuser_idという形でDBに反映されるのですが作ろうとしているuser_idはbigint型。
対して外部キーで参照したいusersテーブルのidがinteger型なので、型が合わずエラーになるようです。
なので、integer型にします。
class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.string :content
t.integer :user_id
t.timestamps
end
end
end
これでマイグレーション通りました。
参考: https://qiita.com/umeneri/items/b46c537661f612f7318b
最後までご覧いただきありがとうございました。