Railsの移行:制約の削除


135

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

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

回答:



247

Rails 4以降では、null以外の制約を削除するために、以下を使用できますchange_column_null

change_column_null :users, :address, true

実際に試してみましたか?:あなたは関数のソースコードを一瞥した場合、あなたは何もなく、見ていないraise NotImplementedError, "change_column_null is not implemented"
drusepth

3
postgresqlで使用しています。railsは、データベース固有のアダプターで定義します。postgresmysqlを参照してください。apidockで他のユーザーを検索できます。したがって、誰かがNotImplementedError
Aを受け取っ

1
賛成投票!Railsガイドへのリンクもここにあり ます。
mcKain

1
これが選択された答えになるはずです
nahtnam
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.