Techioz Blog

移行を通じて列にデフォルト値を追加する

概要

移行によってすでに存在する列にデフォルト値を追加するにはどうすればよいですか?

私が見つけることができるすべてのドキュメントには、列がまだ存在しない場合にそれを行う方法が示されていますが、この場合は列が存在します。

解決策

その方法は次のとおりです。

change_column :users, :admin, :boolean, :default => false

ただし、PostgreSQL などの一部のデータベースでは、以前に作成された行のフィールドが更新されないため、移行時にフィールドも手動で更新するようにしてください。