首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >添加索引:通过生成迁移为ruby on rails中的列添加唯一索引

添加索引:通过生成迁移为ruby on rails中的列添加唯一索引
EN

Stack Overflow用户
提问于 2013-05-09 01:33:39
回答 1查看 26.8K关注 0票数 23

我知道我可以触摸迁移并添加

代码语言:javascript
复制
add_index :table_name, :column_name, :unique => true

但是,正确的rails迁移命令是如何生成这些的呢?

代码语言:javascript
复制
rails g migration add_index_to_column_name :column_name, :unique => true

是那么回事吗?

在我的特殊示例中,我有一个表customers

代码语言:javascript
复制
  t.integer :customerID
  t.string :surname
  t.string :first_name
  t.string :phone

A我要将customerID设置为唯一。已尝试

代码语言:javascript
复制
rails g migration AddIndexToCustomers :customerID, :unique => true 

但如果我在此之后查看我的迁移文件,它看起来并不正确,如下所示:

代码语言:javascript
复制
def change
    add_column :customers, :, :customerID,
    add_column :customers, :, :unique
    add_column :customers, :=, :string
  end

有什么想法或建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 01:46:58

从Rails 3.2开始,您可以使用:

代码语言:javascript
复制
 rails g migration add_index_to_table_name column_name:uniq

来自http://guides.rubyonrails.org/3_2_release_notes.html的示例

代码语言:javascript
复制
 rails g scaffold Post title:string:index author:uniq price:decimal{7,2}

upd我很抱歉。如果你不传递的话,默认的类型是string。你可以自己传递类型。

代码语言:javascript
复制
column_name:type:uniq

因此,您的示例应该如下所示:

代码语言:javascript
复制
rails g migration add_index_to_customers customerID:integer:uniq
票数 46
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16446814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档