背景
開発中で『rake db:migrate』をすると、『ArgumentError: Index name xx on xx already exists』というエラーが出てきた。
おそらく、前同じ命令を実行する時、エラーになって、『rake db:rollback』の実行をわすれてしまって、そうなっちゃったじゃないかなあ。
対策
戻れる時
rake db:rollback
戻らない時
- indexを確認する
ActiveRecord::Base.connection.tables.each do |table|
puts ActiveRecord::Base.connection.indexes(table).inspect
end
- テーブルを消せばいい
indexももちろん消してしまうので
ActiveRecord::Migration.drop_table :table_name