From e2e12ccb525648727346469f8ad89445689406ac Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 14 Jan 2025 11:07:03 +1100 Subject: [PATCH 1/2] Remove spree_variants default value and constraint Some of the production database have default value for `weight` and `unit_value` has well as check constraint. We want to remove them to bring the database schema inline with schema.rb --- ...1211060023_remove_variant_default_value.rb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 db/migrate/20241211060023_remove_variant_default_value.rb diff --git a/db/migrate/20241211060023_remove_variant_default_value.rb b/db/migrate/20241211060023_remove_variant_default_value.rb new file mode 100644 index 00000000000..12518a10e7f --- /dev/null +++ b/db/migrate/20241211060023_remove_variant_default_value.rb @@ -0,0 +1,27 @@ +class RemoveVariantDefaultValue < ActiveRecord::Migration[7.0] + def up + change_table :spree_variants do |t| + t.change_null :weight, true + t.change_default :weight, nil + t.change_null :unit_value, true + t.change_default :unit_value, nil + end + execute <<-SQL + ALTER TABLE spree_variants + DROP CONSTRAINT IF EXISTS check_unit_value_for_nan; + ALTER TABLE spree_variants + DROP CONSTRAINT IF EXISTS check_weight_for_nan; + SQL + end + + def down + change_table :spree_variants do |t| + t.change_null :weight, false + t.change_default :weight, "0.0" + t.change_null :unit_value, false + t.change_default :unit_value, "1.0" + t.check_constraint("unit_value <> 'NaN'::double precision", name: "check_unit_value_for_nan") + t.check_constraint("weight <> 'NaN'::numeric", name: "check_weight_for_nan") + end + end +end From 600195a72634ca7a7507ea002299b679807fc9f1 Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 14 Jan 2025 11:09:58 +1100 Subject: [PATCH 2/2] Allow null for customers.created_manually Some production database don't allow null for customers.created_maually, we want to allow it to bring the database inline with schema.rb --- .../20250113055412_customers_created_manually_remove_null.rb | 5 +++++ db/schema.rb | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20250113055412_customers_created_manually_remove_null.rb diff --git a/db/migrate/20250113055412_customers_created_manually_remove_null.rb b/db/migrate/20250113055412_customers_created_manually_remove_null.rb new file mode 100644 index 00000000000..75150131e45 --- /dev/null +++ b/db/migrate/20250113055412_customers_created_manually_remove_null.rb @@ -0,0 +1,5 @@ +class CustomersCreatedManuallyRemoveNull < ActiveRecord::Migration[7.0] + def change + change_column_null :customers, :created_manually, true + end +end diff --git a/db/schema.rb b/db/schema.rb index 37bab4a1e64..ea7efe830f3 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2024_11_13_185651) do +ActiveRecord::Schema[7.0].define(version: 2025_01_13_055412) do # These are extensions that must be enabled in order to support this database enable_extension "pg_stat_statements" enable_extension "plpgsql"