Specify custom index name when using add_reference

bhanu picture bhanu · May 21, 2015 · Viewed 10.4k times · Source

I have the following migration

class LinkDoctorsAndSpecializations < ActiveRecord::Migration
  def up
    add_reference :doctors, :doctor_specialization, polymorphic: true, index: true
  end

  def down
    remove_reference :doctors, :doctor_specialization, polymorphic: true
  end
end

when i run rake db:migrate i am getting the error

Index name 'index_doctors_on_doctor_specialization_type_and_doctor_specialization_id' on table 'doctors' is too long; the limit is 63 characters

so how can i specify the index name when using add_reference like the way we specify in add_index :table, :column, :name => 'index name'

Answer

Arup Rakshit picture Arup Rakshit · May 21, 2015

As I commented, do :

add_index :table, :column, name: 'index name' 

Here is documentation. Or, you can try this :

class LinkDoctorsAndSpecializations < ActiveRecord::Migration
  def change
    add_reference :doctors, :doctor_specialization, polymorphic: true, index: { name: 'index name' }
  end
end