Rails 迁移: 删除约束

我在 Rails 应用程序中有一个表,它(在 schema.rb 中)看起来像:

create_table "users", :force => true do |t|
t.string "name", :null=>false
t.string "address", :null=>false
end

我想编写一个 Rails 迁移,以允许地址字段为空。也就是说,在迁移之后,表看起来像这样:

create_table "users", :force => true do |t|
t.string "name", :null=>false
t.string "address"
end

我需要做什么来移除约束?

58961 次浏览

不知道你能不能调用 t.address? 无论如何... 我会像这样使用 change_column

change_column :users, :address, :string, :null => true

医生。 Http://apidock.com/rails/activerecord/connectionadapters/schemastatements/change_column

在 Rails 4 + 中,为了移除非空约束,可以使用 change_column_null:

change_column_null :users, :address, true