Ответ 1
В соответствии с Код Rails для references
вы можете сделать это, предоставив index
a Hash
с параметрами, которые вам нужно вызвать :name
, поэтому:
t.references :my_field, index: { name: 'my_index_name' }
В миграции есть следующее:
create_table :model_with_a_long_name do |t|
t.references :other_model_with_an_equally_long_name, index: true
end
Это создает индекс с слишком длинным именем для Postgres.
Есть ли способ вручную указать имя индекса (без добавления целочисленного столбца и индекса отдельно)?
Что-то вроде следующего:
create_table :model_with_a_long_name do |t|
t.references :other_model_with_an_equally_long_name, index: true, index_name: 'model_and_other'
end
?
В соответствии с Код Rails для references
вы можете сделать это, предоставив index
a Hash
с параметрами, которые вам нужно вызвать :name
, поэтому:
t.references :my_field, index: { name: 'my_index_name' }
Указать его вручную:
t.integer :othermodel_id
...
end
add_index :thismodel, :othermodel_id, index_name: 'othermodel_index'