我有一個軌道模型有一個非空默認的布爾值字段,我試圖設置一個默認值。我發現了一篇關於避免3統計布爾問題的博客文章,所以我試圖迎合這一點。這是我的遷移:Rails遷移添加默認非空屬性到現有的布爾字段
def change
change_column :table, is_foo, :boolean, null: false, default: false
end
由於數據庫中存在空值,運行遷移失敗。更新現有條目以允許模式更改的正確方法是什麼?還是應該不是空控制被添加到模型:
validates :is_foo, presence: true
不知道如果加入這遷移是「正確」的方式:
Table.update_all(:is_foo => false)
同樣,這個領域進行了遷移添加沒有額外的非空/默認參數。遷移到添加列還需要這個,還是默認設置值?下面是我跑遷移:
add_column :table, is_foo, :boolean
如果我在add_column添加,null: false, default: false
,將所有的值已正確設置?