From 109a3da1048c4604ed7a773fa4e69169dcd0be6b Mon Sep 17 00:00:00 2001 From: Andy Brett Date: Tue, 2 Feb 2021 09:32:47 -0800 Subject: [PATCH] use more efficient query; enforce not null at db level --- db/migrate/20210202052337_migrate_variant_unit_values.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/db/migrate/20210202052337_migrate_variant_unit_values.rb b/db/migrate/20210202052337_migrate_variant_unit_values.rb index 2a797bd04a..862710f4bf 100644 --- a/db/migrate/20210202052337_migrate_variant_unit_values.rb +++ b/db/migrate/20210202052337_migrate_variant_unit_values.rb @@ -1,11 +1,13 @@ class MigrateVariantUnitValues < ActiveRecord::Migration def up - Spree::Variant.all.select { |v| - v.unit_value.nil? && v.product&.variant_unit == "items" - }.each do |variant| + Spree::Variant.includes(:product).where( + spree_products: { variant_unit: "items" }, + spree_variants: { unit_value: nil } + ).each do |variant| variant.unit_value = 1 variant.save end + change_column_null :spree_variants, :unit_value, false, 1 end def down