我在username
表上有users
列。我可以这样做:rails generate migration add_username_to_users username:string:uniq
,但我有username
列(我已经运行了迁移)。
那么,我如何使username
列成为唯一的呢?
发布于 2015-10-23 03:52:56
不太清楚是要确保username
中的值是唯一的,还是要筛选现有的值才是唯一的。
在数据库级别,确保唯一性的方式是通过索引。在迁移中,为列创建一个新的唯一索引。
add_index :users, :username, unique: true
请注意,如果当前数据库中有副本,则创建将失败。在这种情况下,首先转到CLI并删除副本,然后运行迁移。
发布于 2015-10-23 03:53:57
你可以这样做:
add_index :table_name, :column_name, :unique => true
或者:
rails g migration add_index_to_table_name :column_name, :unique => true
https://stackoverflow.com/questions/33301597
复制