迁移:t.references不允许指定索引名称

Dre*_*ams 32 ruby ruby-on-rails

我在迁移中有以下内容:

create_table :model_with_a_long_name do |t|
  t.references :other_model_with_an_equally_long_name, index: true
end
Run Code Online (Sandbox Code Playgroud)

这会为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
Run Code Online (Sandbox Code Playgroud)

Rus*_*nov 77

根据Rails代码references,你可以这样做,提供index一个Hash选项,你需要的那个:name,所以:

t.references :my_field, index: { name: 'my_index_name' }
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢 Rails,太简单了! (2认同)