はじめに
以下のマイグレーションエラーがよく起きてたけど、
対処法は毎度同じだったので手順を残す
Index name {Index name} on table {Table name} already exists
rails db:migrate
またはrails db:migrate:up VERSION={バージョン}
したときに、
上記のエラーメッセージで怒られる
やったこと
テーブルまたはインデックスが本当にあるのか確認
$ docker compose exec db bash
$ mysql -u root -p
# パスワード入力
# 本当にテーブルがあるのか → あった
show columns from {Table name};
# そのテーブルに当該Indexはあるのか → あった
show index from {Table name};
作成しようとしている所に作成しているあるから怒られると思う
ならば消してみる
# インデックスがあれば消す
alter table {Table name} drop index {Index name};
# テーブルも消す
drop table {Table name};
指定のバージョンだけdownしていたら、バージョン指定してupしてもよし
一応マイグレーションはできた
# 特定のマイグレーションファイルのみmigrate
rails db:migrate:up VERSION={バージョン}