我在我的Rails项目中有这个迁移
class ChangeColumnDefaultOfTemp < ActiveRecord::Migration
def up
change_column_null :states, :temp, false, ''
change_column_default :states, :temp, ''
end
def down
change_column_null :states, :temp, true
change_column :states, :temp, :string, default: nil
end
end
我能使用以下方法撤销非空约束:
change_column_null :states, :temp, true
但是这个命令
change_column :states, :temp, :string, default: nil
没有给我期望的结果
rake db:migrate
temp | character varying(255) | not null default ''::character varying
rake db:rollback
temp | character varying(255) | default NULL::character varying
-- Expected is
temp | character varying(255) |
注意:寻找类似于
的东西。ALTER [ COLUMN ] column DROP DEFAULT