خرید بک لینک

Vote count: 0

I have a rails model that has a non-defaulted boolean field that is nullable and am trying to set a default. I found a blog post about avoiding a 3-stat boolean issue, so am trying to cater for this. This is the migration I have:

def change
  change_column :table, is_foo, :boolean, null: false, default: false
end

Ruing the migration fails because of existing null values in the database. What is the correct way to update existing entries to allow the schema change? Or should the not null control be added to the model:

validates :is_foo, presence: true

Not sure if adding this to the migration is the "right" way:

 Table.update_all(:is_foo => false)

Similarly, this field was added by a migration without extra not null / default parameters. Would the migration to add column also require this, or would the default set the value? Here's the migration I ran:

add_column :table, is_foo, :boolean

If I had added ,null: false, default: false on the add_column, would all the values have been set correctly?

asked 19 secs ago

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 16 تير 1395 ساعت: 13:17

صفحه بندی