問題
Railsで開発中、rails s
でサーバーを起動するとたまに次のエラーが出る。
ActiveRecord::PendingMigrationError
Migrations are pending. To resolve this issue, run: rails db:migrate RAILS_ENV=development
解決
「Migrations are pending(マイグレーションが保留中やで〜)」と言われているので、マイグレーションを実行してあげればOK。
rails db:migrate
それでもダメなら、そもそものデータベースが作られていない可能性があるので、データベースを作成してからまたrails db:migrate
する。
rails db:create rails db:migrate
再度サーバーを立ち上げれば表示されるはず。
rails s
原因
これはrails g model ~
でモデルを作ったあと、マイグレーションを実行していないのが原因である場合が多い(個人的に)。
「マイグレーション」とは、データベースのテーブルを設計すること。その設計書が「マイグレーションファイル」と呼ばれる。 Railsでは、モデル作成コマンドを打つとマイグレーションファイルが生成される。
マイグレーションが自動で行われることはなく、自分でrails db:migrate
を実行する必要がある。
「モデルを作ったら、マイグレーション実行までがセット」と覚えておくとよい。