すでにindex貼られているカラムに対してunique制限をかける方法 - Ruby on Rails

すでにindexが貼られているカラムに対して、以下のようにmigrationファイルを編集してunique制限をかけようとした時に

def change
    add_index :users, :email, unique: true
end

そのままdb:migrateすると

Index name 'index_users_on_email' on table 'users' already exists

と怒られてしまうので、その対策メモ

対応

そのままindexを追加すると既に存在するということでエラーがでてしまうので、 一旦、indexを削除してからunique制限をかけると、上手くいった

def change
    remove_index :users, :email
    add_index :users, :email, unique: true
end

参考

stackoverflow.com