目前的迁移:
t.string "email", :default => "", :null => false
add_index :users, :email, :unique => true
我想创建新迁移以删除:null => false
要求,同时删除default => ""
email
。另外,我想更改索引以删除:unique => true
。语法是什么?
答案 0 :(得分:6)
我对索引做的不多,而且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
而不是省略应该处理它。