Если я добавлю значение по умолчанию к существующему столбцу через миграцию ActiveRecord, при развертывании моих изменений в производство существующие ассоциации не будут затронуты.
Я могу перейти на рабочую консоль rails и выполнять итерации по каждомузапишите и установите значение в новом столбце в ложное значение для каждой записи, однако это утомительно и плохо масштабируется.
class AddDefaultValuesToAFewColumns < ActiveRecord::Migration[5.2]
def change
change_column :downloads, :is_deleted, :boolean, :default => false
end
end
create_table "downloads", force: :cascade do |t|
t.string "version"
t.string "comment"
t.string "contributors"
t.string "release_date"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "download_url"
t.boolean "is_deleted", default: false
end
Ожидаемый результат будет для ассоциаций при запросе с консоли rails наверните false
для is_deleted, скорее он вернет nil
.Почему это так и какие есть альтернативные решения?