当前迁移:
t.string "email", :default => "", :null => false
add_index :users, :email, :unique => true
我想创建一个新的迁移来删除
:null => false
要求并删除 default => ""
为 email
.另外,我想更改索引以删除 :unique => true
.语法是什么?
最佳答案
我对索引的处理不多,而且 ActiveRecord::Migration
上似乎没有 change_index 方法。 ,但你可以尝试这样的事情:
class ChangeUserStuff < ActiveRecord::Migration
def self.up
change_column :users, :email, :default => "", :null => true
remove_index :users, :column => :email
add_index :users, :email
end
def self.down
change_column :users, :email, :default => "", :null => false
remove_index :users, :column => :email
add_index :users, :email, :unique => true
end
end
关于更改
:null
有一些有趣的行为选项,但我相信将它们设置为 true
而不是省略应该处理它。
关于ruby-on-rails - Rails 3 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7587632/