diff --git a/migrations/000094_add_point_payment_method.down.sql b/migrations/000094_add_point_payment_method.down.sql index dd86218..4bffcee 100644 --- a/migrations/000094_add_point_payment_method.down.sql +++ b/migrations/000094_add_point_payment_method.down.sql @@ -13,4 +13,4 @@ DROP INDEX IF EXISTS uq_payment_methods_point_per_organization; ALTER TABLE payment_methods DROP CONSTRAINT IF EXISTS payment_methods_type_check; ALTER TABLE payment_methods ADD CONSTRAINT payment_methods_type_check - CHECK (type IN ('cash', 'card', 'digital_wallet')); + CHECK (type IN ('cash', 'card', 'digital_wallet', 'qr', 'edc', 'delivery')); diff --git a/migrations/000094_add_point_payment_method.up.sql b/migrations/000094_add_point_payment_method.up.sql index e39899e..eab3509 100644 --- a/migrations/000094_add_point_payment_method.up.sql +++ b/migrations/000094_add_point_payment_method.up.sql @@ -1,10 +1,11 @@ -- Paying with EnakPoint (docs/prd-point-coin.md F9, §8, §10.5). --- A new payment method type. Every organization has exactly one method of it, made by +-- A new payment method type, next to the existing ones (edc and delivery were added to +-- the constraint outside the migrations). Every organization has exactly one method of it, made by -- the system, which cannot be deleted or change type. ALTER TABLE payment_methods DROP CONSTRAINT IF EXISTS payment_methods_type_check; ALTER TABLE payment_methods ADD CONSTRAINT payment_methods_type_check - CHECK (type IN ('cash', 'card', 'digital_wallet', 'point')); + CHECK (type IN ('cash', 'card', 'digital_wallet', 'qr', 'edc', 'delivery', 'point')); CREATE UNIQUE INDEX uq_payment_methods_point_per_organization ON payment_methods(organization_id) WHERE type = 'point'; diff --git a/migrations/000098_allow_edc_delivery_payment_methods.down.sql b/migrations/000098_allow_edc_delivery_payment_methods.down.sql new file mode 100644 index 0000000..d3eedb5 --- /dev/null +++ b/migrations/000098_allow_edc_delivery_payment_methods.down.sql @@ -0,0 +1,2 @@ +-- Nothing to undo: 000094 now allows the same types. +SELECT 1; diff --git a/migrations/000098_allow_edc_delivery_payment_methods.up.sql b/migrations/000098_allow_edc_delivery_payment_methods.up.sql new file mode 100644 index 0000000..c831678 --- /dev/null +++ b/migrations/000098_allow_edc_delivery_payment_methods.up.sql @@ -0,0 +1,7 @@ +-- Production also has edc and delivery payment methods, allowed by a constraint changed +-- outside the migrations, and the code also accepts qr, which no constraint allowed. +-- 000094 first rewrote the constraint without them, which +-- failed on production and, where it ran, dropped them. Keep every type in use. +ALTER TABLE payment_methods DROP CONSTRAINT IF EXISTS payment_methods_type_check; +ALTER TABLE payment_methods ADD CONSTRAINT payment_methods_type_check + CHECK (type IN ('cash', 'card', 'digital_wallet', 'qr', 'edc', 'delivery', 'point'));