web-dev-qa-db-ja.com

Rails Migration:制約の削除

Railsアプリケーションに(schema.rbで)次のようなテーブルがあります。

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

Rails移行を記述して、アドレスフィールドにnullを許可します。つまり、移行後、テーブルは次のようになります。

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

制約を削除するにはどうすればよいですか?

119
Jay Godse

t.address?とにかく... change_column そのようです

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

ドキュメント... http://apidock.com/Rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column

160
Paul Sturgess

Rails 4+では、null以外の制約を削除するために、 change_column_null

change_column_null :users, :address, true
222
deepak