気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【Rails/migrate】Mysql2::Error: Duplicate column nameの解決方法

こんにちは。

私、末端冷え性で年がら年中、手先、足先が冷たい。

どうもハチマキです。

はじめに

rails db:migrateする際に、Mysql2::Error: Duplicate column nameエラーが発生し、migrateが出来ない問題が発生しました。今回はこの解決方法に関して書いていきたいと思います。

では早速行きましょう!

本日の概要 : Mysql2::Error: Duplicate column nameの解決方法

エラー例

$ bundle exec rails db:migrate

==  AddカラムToテーブル: migrating ==================================
-- add_column(:テーブル名, :カラム名, :string)
rake aborted!
Mysql2::Error: Duplicate column name 'カラム名'
・
・
・
・

原因

結論、カラムの重複が原因です。(※僕の場合、一度migrateしてrollbackしたことが原因で発生しました)

解決方法

やることはたったの2つ!
1. migrateしたいファイルを一度空にし、$ rails db:migrateする

class AddカラムToテーブル < ActiveRecord::Migration
  def change
 # 空にする
  end
end

上記のように空に書き換えて$ rails db:migrate を実行する

$ bundle exec rails db:migrate
==  AddカラムToテーブル: migrating ==================================
==  AddカラムToテーブル: migrated (0.0000s) =========================

2. migrateしたい状態に戻し、$ rails db:migrateを実行する

class AddカラムToテーブル < ActiveRecord::Migration
  def change
    add_column :テーブル名, :カラム名, :string
  end
end
$ bundle exec rails db:migrate

これで成功するはずです!

参考資料

[エラー解決] Error: Duplicate column name ''"、カラムの重複、SQL - Qiita

                                            • -

日々勉強です。
以上、ハチマキでした。