diff --git a/migrations/0022_fix_notnull_richtext_columns.sql b/migrations/0022_fix_notnull_richtext_columns.sql new file mode 100644 index 0000000..8586872 --- /dev/null +++ b/migrations/0022_fix_notnull_richtext_columns.sql @@ -0,0 +1,37 @@ +-- Migration: fix NOT NULL blocked columns from 0021 - drop constraint before type change + +DO $$ BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'dinosaur_page_why_visit_items' AND column_name = 'description' + AND data_type IN ('character varying', 'text') + ) THEN + ALTER TABLE "dinosaur_page_why_visit_items" ALTER COLUMN "description" DROP NOT NULL; + ALTER TABLE "dinosaur_page_why_visit_items" ALTER COLUMN "description" DROP DEFAULT; + ALTER TABLE "dinosaur_page_why_visit_items" ALTER COLUMN "description" TYPE jsonb USING NULL; + END IF; +END $$; + +DO $$ BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'dyvolis_page_why_visit_items' AND column_name = 'description' + AND data_type IN ('character varying', 'text') + ) THEN + ALTER TABLE "dyvolis_page_why_visit_items" ALTER COLUMN "description" DROP NOT NULL; + ALTER TABLE "dyvolis_page_why_visit_items" ALTER COLUMN "description" DROP DEFAULT; + ALTER TABLE "dyvolis_page_why_visit_items" ALTER COLUMN "description" TYPE jsonb USING NULL; + END IF; +END $$; + +DO $$ BEGIN + IF EXISTS ( + SELECT 1 FROM information_schema.columns + WHERE table_name = 'locations_why_visit_items' AND column_name = 'description' + AND data_type IN ('character varying', 'text') + ) THEN + ALTER TABLE "locations_why_visit_items" ALTER COLUMN "description" DROP NOT NULL; + ALTER TABLE "locations_why_visit_items" ALTER COLUMN "description" DROP DEFAULT; + ALTER TABLE "locations_why_visit_items" ALTER COLUMN "description" TYPE jsonb USING NULL; + END IF; +END $$;