bhanu bhanu - 5 months ago 22
Ruby Question

Specify custom index name when using add_reference

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

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