I am trying to add an unique index that gets created from the foreign keys of four associated tables:
add_index :studies,
["user_id", "university_id", "subject_name_id", "subject_type_id"],
:unique => true
The database’s limitation for the index name causes the migration to fail. Here’s the error message:
Index name 'index_studies_on_user_id_and_university_id_and_subject_name_id_and_subject_type_id' on table 'studies' is too long; the limit is 64 characters
How can I handle this? Can I specify a different index name?
Best Answer
Provide the
:name
option toadd_index
, e.g.:If using the
:index
option onreferences
in acreate_table
block, it takes the same options hash asadd_index
as its value: