是否有可能改变栏3索引迁移?

我有一个表'用户'栏'电子邮件'。 它曾经是唯一的(有索引),但是新的要求是允许nils在那里。

有没有比以下更好的解决scheme:

remove_index :users, :email add_index :users, :email 

最初它增加了独特的选项:

 add_index :users, :email, :unique => true 

我会说,你有正确的解决scheme,因为索引将需要重新生成,所以为什么没有update_index

嘿,这是我刚刚写的一个迁移,工作得很好。 我有一个表'scraped_episodes'的列是varchar(255)“enclosureUrl”。 我需要使这个更长的url,所以这就是我使用的(Rails 3.2.13)

 class ExpandEnclosureUrl < ActiveRecord::Migration def up # remove index cuz we need to remove_index :scraped_episodes, :enclosureUrl # change length to 2048 characters change_column :scraped_episodes, :enclosureUrl, :text, :limit=>2048 # redo this index to only index the first 255 chars add_index :scraped_episodes, :enclosureUrl, :length => 255 end def down # remove index cuz we need to remove_index :scraped_episodes, :enclosureUrl # use the same settings at when i first created this field change_column :scraped_episodes, :enclosureUrl, :string, :limit=>nil # use the same settings as when i first added this index add_index :scraped_episodes, :enclosureUrl end end