既存の列にデフォルトのブール値を追加することについて、SOでいくつかの質問(つまりこれ)を見ました。だから私はchange_column
提案を試みましたが、私はそれを正しく行ってはなりません。
私は試した:
$ change_column :profiles, :show_attribute, :boolean, :default => true
どっちが帰る -bash: change_column: command not found
次に実行しました:
$ rails g change_column :profiles, :show_attribute, :boolean, :default => true
...そして
$ rails change_column :profiles, :show_attribute, :boolean, :default => true
その後、実行されましたrake db:migrate
が、の価値は:show_attribute
残りましたnil
。上記で参照した質問では、PostgreSQLでは手動で更新する必要があると記載されています。私はPostgreSQLを使用しているので、create_profiles
移行に以下を追加しました。
t.boolean :show_attribute, :default => true
私がここで間違っていることを誰かが教えてもらえますか?
up
、db / migrate /に生成される新しいクラスであるマイグレーションのメソッド内にある必要があります。(down
この方法は、どのような元に戻すように作成する必要がありup
ません。)そして、その変更を確認しますrake db:migrate
。