Railsのmigrationでchange_columnを利用する
change_column
Railsのmigrationでカラムの情報を変更したい場合によく使うchange_columnですが、
change_column(table_name, column_name, type, options = {})
と変更したいtypeを設定してoptionsを設定すればいいので、add_columnなどとインターフェイスが変わらず設定できます。
change_column_null
NULLのtrue/falseを切り替えたいだけの場合は change_column_nullが便利ですね。
change_column_null(:users, :nickname, false)
このように設定できます。
change_column_comment
カラムに設定するコメントのみを変更する場合はchange_column_commentですね。 nilを入れることで設定しているコメントを削除することもできます。
change_column_comment(:users, :id, 'comment') change_column_comment(:users, :nickname, nil)
change_column_default
最後にカラムのデフォルト値を変更するchange_column_defaultなのですが、 このメソッドは引数にHashで:from と :to で設定することで可逆的な設定がすることができます。
change_column_default(:posts, :state, from: nil, to: "draft")
これは便利ですね。 テストで作ったけど戻したい等の場合はとても役に立ちます。