first commit
This commit is contained in:
49
database/migrations/002_subscription_custom_intervals.sql
Normal file
49
database/migrations/002_subscription_custom_intervals.sql
Normal file
@@ -0,0 +1,49 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE subscriptions
|
||||
ADD COLUMN IF NOT EXISTS custom_interval_value integer,
|
||||
ADD COLUMN IF NOT EXISTS custom_interval_unit text;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'subscriptions' AND column_name = 'custom_interval_days'
|
||||
) THEN
|
||||
UPDATE subscriptions
|
||||
SET
|
||||
custom_interval_value = COALESCE(custom_interval_value, custom_interval_days),
|
||||
custom_interval_unit = CASE
|
||||
WHEN custom_interval_days IS NOT NULL THEN COALESCE(custom_interval_unit, 'days')
|
||||
ELSE custom_interval_unit
|
||||
END;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER TABLE subscriptions
|
||||
DROP COLUMN IF EXISTS custom_interval_days;
|
||||
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'subscriptions_custom_interval_value_positive'
|
||||
) THEN
|
||||
ALTER TABLE subscriptions
|
||||
ADD CONSTRAINT subscriptions_custom_interval_value_positive
|
||||
CHECK (custom_interval_value > 0);
|
||||
END IF;
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM pg_constraint
|
||||
WHERE conname = 'subscriptions_custom_interval_unit_valid'
|
||||
) THEN
|
||||
ALTER TABLE subscriptions
|
||||
ADD CONSTRAINT subscriptions_custom_interval_unit_valid
|
||||
CHECK (custom_interval_unit IN ('days', 'weeks', 'months', 'years'));
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user