Sta*_*ers 2 ruby-on-rails database-migration
rails g migration CreateJoinTable zombie:index role:index
Run Code Online (Sandbox Code Playgroud)
这会创建此迁移:
class CreateJoinTable < ActiveRecord::Migration
def change
create_join_table :zombies, :roles do |t|
t.index [:zombie_id, :role_id]
t.index [:role_id, :zombie_id] # I'd be happy if it didn't have this!
end
end
end
Run Code Online (Sandbox Code Playgroud)
迁移几乎就在那里,但为什么我有四个索引而不是两个?在我的generate命令中,它指定为已经存在的索引创建额外的两组索引?
试试这个:
rails g migration CreateJoinTableRolesZombies roles zombies
Run Code Online (Sandbox Code Playgroud)
迁移会注释掉索引,可能是为了表明create_join_table会为您处理此问题.
请注意,在rails 4中,表名必须按排序顺序排列.此外,在此示例中扩展了迁移名称,以便明确说明.CreateJoinTable出现在其中,这就足够了.
| 归档时间: |
|
| 查看次数: |
1238 次 |
| 最近记录: |