「ActiveRecord::PendingMigrationError」と出た時のエラー解決方法【rails】


この記事は、RubyOnRailsの基礎学習で、Twitter風のWebアプリケーション作成中に発生したエラーについて、備忘録としてまとめたものです。

発生している問題・エラーメッセージ

ユーザー登録機能を作成中に、ページを表示しようとしたら以下のエラーメッセージが出た。

「Migrations are pending」
マイグレーションが保留になっている

開発環境

・データベース:MYSQL
・railsのバージョン:5.0.7.1
・クラウド環境:AWS Cloud9
・使用PC:macbook pro

エラーの原因

今までにマイグレーションした履歴を確認

$ rails db:migrate status

usersテーブルがすでに作られているのに、もう一度作ってしまったため、エラーが出ているようです。

エラーの解決方法

今回は、usersテーブルに登録したuser情報が2つしかなかったため、データベースをリセットする方法をとります。

$ rails db:reset

これで、rails db:migrate(実行)、rails db:drop(削除)、rails db:create(作成)を同時にやってくれる。

エラーが解決して、ページが表示されるようになりました。

ユーザーを作成

$ rails console
> user = User.new(name: '〜' , email: '〜', password: '〜')

> user.save

ステップアップのための備忘録

今回は、データベースをリセットする方法を用いたが、重複して作成してしまったデータのみを削除できるようにしたい。