Rails Migration: Remove constraint

萝らか妹 提交于 2019-12-04 07:46:24

问题


I have a table in a Rails application which (in schema.rb) looks like:

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

I would like to write a rails migration to allow nulls for the address field. i.e. after the migration the table looks like this:

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

What do I need to do to remove the constraint?


回答1:


Not sure you can call t.address? Anyway... I would use change_column like so

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

Docs... http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column




回答2:


In Rails 4+ in order to remove not-null constraint, you can use change_column_null:

change_column_null :users, :address, true


来源:https://stackoverflow.com/questions/5682068/rails-migration-remove-constraint

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!