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

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

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

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

解決済

ActiveRecord::PendingMigrationErrorが解決できません

pikariiin
pikariiin

総合スコア14

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1回答

0評価

0クリップ

16645閲覧

投稿2017/05/04 08:52

###前提・実現したいこと
Ruby on Railsで、既存のテーブルに新しいカラムを追加しようとしたところ、エラーが出ました。解決にご協力お願いいたします。
###発生している問題・エラーメッセージ
テーブルにカラムを追加しようとしたところ、おそらくすでにあるカラムを追加しようとしたことがきっかけでpendingがおきました。よくわからずrake db:rollbackなどを試し、現在はActiveRecord::PendingMigrationErrorが出ています。

エラーメッセージ
ターミナルでは
== 20170504074429 AddGroupNameToActivities: migrating =========================
-- add_column(:activities, :Group_name, :text)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:

Mysql2::Error: Duplicate column name 'Group_name': ALTER TABLE activities ADD Group_name text
/Users/hikari/Desktop/mdp/db/migrate/20170504074429_add_group_name_to_activities.rb:3:in change' -e:1:in <main>'
ActiveRecord::StatementInvalid: Mysql2::Error: Duplicate column name 'Group_name': ALTER TABLE activities ADD Group_name text
/Users/hikari/Desktop/mdp/db/migrate/20170504074429_add_group_name_to_activities.rb:3:in change' -e:1:in <main>'
Mysql2::Error: Duplicate column name 'Group_name'
/Users/hikari/Desktop/mdp/db/migrate/20170504074429_add_group_name_to_activities.rb:3:in change' -e:1:in <main>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

localhostでの画面上では
ActiveRecord::PendingMigrationError

Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development

Extracted source (around line #392):
390
391
392
393
394
395

def check_pending!(connection = Base.connection) raise ActiveRecord::PendingMigrationError if ActiveRecord::Migrator.needs_migration?(connection) end def load_schema_if_pending

###該当のソースコード
migrate file は

class AddGroupNameToActivities < ActiveRecord::Migration
def change
add_column :activities, :Group_name, :text
end
end

です。間違えてもともとあるカラムと同じものを追加しようとしてしまいました。

###試したこと

ActiveRecord::PendingMigrationErrorというエラーが出たので、間違ってrake db:rollbackをしました。
ですが、同じpending のエラーが出たので、もう一度同じようにカラムを追加(rails g migration AddGroup_nameToActivities Group_name:text)してrake db:migrateをしたり、bin/rake db:migrate RAILS_ENV=developmentをしたりしたのですが、エラーから抜けられません。

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。