title: Rails error: Index name '...' on table '...' already exists while running rails db:migrate
body: <p>So I'm working with a colleague who added some additional migration files and per normal procedure once I pulled their version I ran rails db:migrate. I end up getting the following errors:</p>
  
  <pre><code> Index name 'index_authorizations_on_user_id' on table 'authorizations' already exists
  
   ArgumentError: Index name 'index_authorizations_on_user_id' on table 'authorizations' already exists
  </code></pre>
  
  <p>So I went and checked the schema and the table is already present. So why is it failing? Typically in the past it only generates new table entries/updates when doing a migration so why isn't it just ignoring it?</p>
  
  <p>I've tried doing a rollback and get:
  This migration uses remove_columns, which is not automatically reversible.</p>
  
  <p>I've tried doing bin/rails db:migrate RAILS_ENV=development and I get the same errors.</p>
  
  <p>I've done a db:reset, db:drop, and it all comes back to an issue with pending migrations that I cannot get to run. What am I doing wrong?</p>
  
  <p>They added the following migration: 20171024074328_create_authorizations.rb</p>
  
  <pre><code> class CreateAuthorizations &lt; ActiveRecord::Migration[5.1]
    def change
      create_table :authorizations do |t|
        t.string :provider
        t.string :uid
        t.references :user, foreign_key: true
  
        t.timestamps
  
        add_index :authorizations, :user_id
        add_index :authorizations, [:provider, :uid], unique: true
      end
    end
  </code></pre>
  
  <p>end</p>