sam*_*mol 20 migration activerecord rails-migrations
有什么区别
t.boolean :is_live, index: true
Run Code Online (Sandbox Code Playgroud)
和
add_index :table_name, :is_live
Run Code Online (Sandbox Code Playgroud)
如果没有区别,那么为什么只能add_index
在schema.rb中反映出来.当我使用时index: true
,我实际上无法看到索引schema.rb
.我应该只使用这种add_index
方法.
使用该add_index
方法时,我可以在schema.rb中看到这一点
add_index "table_name", ["is_live"], name: "index_table_name_on_is_live", using: :blahblah
Run Code Online (Sandbox Code Playgroud)
Ale*_*xey 29
刚发现该:index
选项仅供参考(t.references
或t.belongs_to
).对于"普通"列类型,将忽略此选项(这就是使用该:index
选项时未在schema.db中反映索引的原因).
对于较不详细的语法,有一种index
类型:
t.index :column_name # extra options may be provided also
Run Code Online (Sandbox Code Playgroud)
简而言之:两者都做同样的工作.ìndex:true`只是为您节省了额外的一条线.请看这里https://github.com/rails/rails/pull/5262#issuecomment-4329571
归档时间: |
|
查看次数: |
6832 次 |
最近记录: |