LoginSignup
1
1

More than 1 year has passed since last update.

【Rails】rails sしたらActiveRecord::PendingMigrationError【解決済】

Last updated at Posted at 2021-06-01

1.背景

共同開発でメンバーからプルリクのレビュー依頼を頂きました。
ローカルで動作確認を行おうと該当のブランチに切り替え、rails sでサーバーを立ち上げたところ、
下記のエラーが表示されました。

ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

        bin/rails db:migrate RAILS_ENV=development

You have 1 pending migration:

20210526151149_create_watches.rb

):

pendingとは保留中という意味です。

2.使用環境

  • mac.os バージョン10.15.6
  • Ruby 2.7.2
  • Rails 6.1.3.1
  • psql (PostgreSQL) 12.6

3.エラーの原因

今回のプルリク分ではマイグレーションファイルの更新を含む実装を行っているのですが、私自身ローカル環境に取り入れた際にデータベースの更新をしていませんでした。

4.エラーの解決方法

①保留中のマイグレーションファイルを確認

エラーから、保留になっている該当のファイルを確認します。

ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

        bin/rails db:migrate RAILS_ENV=development

You have 1 pending migration:

20210526151149_create_watches.rb

):

②マイグレーションの実行状況を確認

rails db:migrate:statusを実行します。

team_project % rails db:migrate:status

database: team_project_development

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20210411051744  Create texts
   up     20210411052029  Create movies
   ..
  down    20210526151149  Create watches

downは編集可能(マイグレーションが完了していない)の状態なので、ここでも
データベースが更新されていないことが確認できました。
※up:マイグレーションが完了している状態

③データベースを更新

rails db:migrateを実行します。

team_project % rails db:migrate
== 20210526151149 Create Watches: migrating ====================================
-- create_table(:watches)
   -> 0.0891s
-- add_index(:watches, [:user_id, :movie_id], {:unique=>true})
   -> 0.0026s
== 20210526151149 CreateWatches: migrated (0.0918s) ===========================

データベースが更新され、無事サーバーを起動することができました!:smile:

5.まとめ

エラー画面に発生箇所と原因が記載されているので、落ち着いて対処したら大丈夫だと思いました!
参考にした記事では他の原因の記載もあるので、合わせて確認して頂くと、理解が深まるかと思います。

6.参考

1.web:ActiveRecord::PendingMigrationErrorの解決方法
2.web:RailsのMigrationに関する基本まとめ

7.最後に

記事の感想や意見、ご指摘等あれば伝えていただけるとありがたいです。
読んでいただき、ありがとうございました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1