When removing an index, if a symbol is used for the index name
the removal silently fails.
remove_index :my_table, :name => 'my_index_name'
works but
remove_index :my_table, :name => :my_index_name
does not work. The index removal fails because
SchemaStatements#index_name_exists? uses == without first calling
to_s on the passed name, so it compares a string with a symbol.
The issue is compounded by the swallowing of the exception,
however this has since been fixed by
http://github.com/rails/rails/commit/37de59eacf8f6478e866309615af73...
I have attached a patch to fix the problem