質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

1992閲覧

ActiveRecord::PendingMigrationErrorの対処法がわかりません。

Y.nock

総合スコア9

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/06/10 22:38

サーバーを起動させた際に、
ActiveRecord::PendingMigrationError
Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development

というエラーが出ました。ターミナルの方では、

ActiveRecord::PendingMigrationError (

Migrations are pending. To resolve this issue, run:

bin/rake db:migrate RAILS_ENV=development

):
activerecord (4.2.5) lib/active_record/migration.rb:392:in check_pending!' activerecord (4.2.5) lib/active_record/migration.rb:373:in call'
actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:29:in block in call' activesupport (4.2.5) lib/active_support/callbacks.rb:88:in run_callbacks'
activesupport (4.2.5) lib/active_support/callbacks.rb:778:in _run_call_callbacks' activesupport (4.2.5) lib/active_support/callbacks.rb:81:in run_callbacks'
actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:27:in call' actionpack (4.2.5) lib/action_dispatch/middleware/reloader.rb:73:in call'
actionpack (4.2.5) lib/action_dispatch/middleware/remote_ip.rb:78:in call' actionpack (4.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in call'
web-console (2.3.0) lib/web_console/middleware.rb:20:in block in call' web-console (2.3.0) lib/web_console/middleware.rb:18:in catch'
web-console (2.3.0) lib/web_console/middleware.rb:18:in call' actionpack (4.2.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in call'
railties (4.2.5) lib/rails/rack/logger.rb:38:in call_app' railties (4.2.5) lib/rails/rack/logger.rb:20:in block in call'
activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in block in tagged' activesupport (4.2.5) lib/active_support/tagged_logging.rb:26:in tagged'
activesupport (4.2.5) lib/active_support/tagged_logging.rb:68:in tagged' railties (4.2.5) lib/rails/rack/logger.rb:20:in call'
actionpack (4.2.5) lib/action_dispatch/middleware/request_id.rb:21:in call' rack (1.6.4) lib/rack/methodoverride.rb:22:in call'
rack (1.6.4) lib/rack/runtime.rb:18:in call' activesupport (4.2.5) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in call'
rack (1.6.4) lib/rack/lock.rb:17:in call' actionpack (4.2.5) lib/action_dispatch/middleware/static.rb:116:in call'
rack (1.6.4) lib/rack/sendfile.rb:113:in call' railties (4.2.5) lib/rails/engine.rb:518:in call'
railties (4.2.5) lib/rails/application.rb:165:in call' rack (1.6.4) lib/rack/lock.rb:17:in call'
rack (1.6.4) lib/rack/content_length.rb:15:in call' rack (1.6.4) lib/rack/handler/webrick.rb:88:in service'
/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/webrick/httpserver.rb:140:in service' /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/webrick/httpserver.rb:96:in run'
/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/webrick/server.rb:296:in `block in start_thread'

Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_source.erb (2.9ms)
Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.7ms)
Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.1ms)
Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (78.1ms)

と出ています。
rake db:migrate:reset をしてからおかしくなったような気がしているんですが、正直初めてみる現象だったので、どこから手をつけるべきなのか困っています。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まだ適用されていないmigrationがあるようです。

未適用のmigrationが存在する場合、サーバーの起動はエラーとなります。

エラーメッセージ通り、
rake db:migrate RAILS_ENV=development
とやってみてください。

投稿2016/06/12 15:07

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Y.nock

2016/06/12 16:04

上記のコマンドで確認したところ、あるマイグレーションファイル以降のものが全く反映されていませんでした。なのでその問題のマイグレーションファイルに不備がないか確認したんですが、どうもよくわからなかったので、そのマイグレーションファイルのモデルに関連するマイグレーションファイルをrmコマンドで削除して、最初から作り直しました。その結果、サーバーは正常に起動しました。ありがとうございました。
rifuch

2016/06/12 16:42

db:migrateした時に、エラーで止まっていませんでしたか? マイグレーションの設定に不備があると、その時点で止まってしまい、それ以降が反映されない事がよくあります。 (私も、よくindex名が長すぎる等のエラーを起こします) たいていの場合、エラーを起こしているマイグレーションを修正してから、db:migrateすればOKなのですが、indexのエラーのように、テーブルを作った後にエラーが起きていると、マイグレーションとしては、テーブルが生成されていない状況になるので、すでに存在するテーブルを作成しようとしてエラーになります。 データが消えても問題ないのであれば、再度db:migrate:resetすればOKですが、それ以外の時には、DBのコマンドでテーブルをドロップするしかないです。 よくある事なので、読みにくくてもエラーメッセージはよく読んでおく事をお勧めします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問