diff --git a/src/app/db/migrations/0220_glamorous_phantom_reporter.sql b/src/app/db/migrations/0220_glamorous_phantom_reporter.sql index 9a731a2..74bed70 100644 --- a/src/app/db/migrations/0220_glamorous_phantom_reporter.sql +++ b/src/app/db/migrations/0220_glamorous_phantom_reporter.sql @@ -46,32 +46,220 @@ CREATE TABLE "property_baseline_performance" ( CONSTRAINT "property_baseline_performance_property_id_unique" UNIQUE("property_id") ); --> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "wall_construction" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "wall_insulation_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "party_wall_construction" SET DATA TYPE jsonb;--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "wall_construction" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "wall_construction" IS NULL THEN NULL + WHEN "wall_construction" ~ '^-?[0-9]+$' THEN "wall_construction"::jsonb + ELSE to_json("wall_construction")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "wall_insulation_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "wall_insulation_type" IS NULL THEN NULL + WHEN "wall_insulation_type" ~ '^-?[0-9]+$' THEN "wall_insulation_type"::jsonb + ELSE to_json("wall_insulation_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "party_wall_construction" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "party_wall_construction" IS NULL THEN NULL + WHEN "party_wall_construction" ~ '^-?[0-9]+$' THEN "party_wall_construction"::jsonb + ELSE to_json("party_wall_construction")::jsonb + END + );--> statement-breakpoint ALTER TABLE "epc_building_part" ALTER COLUMN "party_wall_construction" DROP NOT NULL;--> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "flat_roof_insulation_thickness" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "roof_insulation_location" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_building_part" ALTER COLUMN "roof_insulation_thickness" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "main_fuel_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "heat_emitter_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "emitter_temperature" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "main_heating_control" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "energy_pv_connection" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "heating_cylinder_size" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "heating_immersion_heating_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "heating_cylinder_insulation_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "heating_secondary_heating_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_property" ALTER COLUMN "heating_shower_outlet_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "glazing_gap" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "orientation" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "window_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "glazing_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "draught_proofed" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "window_location" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "window_wall_type" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "permanent_shutters_present" SET DATA TYPE jsonb;--> statement-breakpoint -ALTER TABLE "epc_window" ALTER COLUMN "transmission_data_source" SET DATA TYPE jsonb;--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "flat_roof_insulation_thickness" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "flat_roof_insulation_thickness" IS NULL THEN NULL + WHEN "flat_roof_insulation_thickness" ~ '^-?[0-9]+$' THEN "flat_roof_insulation_thickness"::jsonb + ELSE to_json("flat_roof_insulation_thickness")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "roof_insulation_location" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "roof_insulation_location" IS NULL THEN NULL + WHEN "roof_insulation_location" ~ '^-?[0-9]+$' THEN "roof_insulation_location"::jsonb + ELSE to_json("roof_insulation_location")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_building_part" ALTER COLUMN "roof_insulation_thickness" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "roof_insulation_thickness" IS NULL THEN NULL + WHEN "roof_insulation_thickness" ~ '^-?[0-9]+$' THEN "roof_insulation_thickness"::jsonb + ELSE to_json("roof_insulation_thickness")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "main_fuel_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "main_fuel_type" IS NULL THEN NULL + WHEN "main_fuel_type" ~ '^-?[0-9]+$' THEN "main_fuel_type"::jsonb + ELSE to_json("main_fuel_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "heat_emitter_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heat_emitter_type" IS NULL THEN NULL + WHEN "heat_emitter_type" ~ '^-?[0-9]+$' THEN "heat_emitter_type"::jsonb + ELSE to_json("heat_emitter_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "emitter_temperature" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "emitter_temperature" IS NULL THEN NULL + WHEN "emitter_temperature" ~ '^-?[0-9]+$' THEN "emitter_temperature"::jsonb + ELSE to_json("emitter_temperature")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_main_heating_detail" ALTER COLUMN "main_heating_control" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "main_heating_control" IS NULL THEN NULL + WHEN "main_heating_control" ~ '^-?[0-9]+$' THEN "main_heating_control"::jsonb + ELSE to_json("main_heating_control")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "energy_pv_connection" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "energy_pv_connection" IS NULL THEN NULL + WHEN "energy_pv_connection" ~ '^-?[0-9]+$' THEN "energy_pv_connection"::jsonb + ELSE to_json("energy_pv_connection")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "heating_cylinder_size" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heating_cylinder_size" IS NULL THEN NULL + WHEN "heating_cylinder_size" ~ '^-?[0-9]+$' THEN "heating_cylinder_size"::jsonb + ELSE to_json("heating_cylinder_size")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "heating_immersion_heating_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heating_immersion_heating_type" IS NULL THEN NULL + WHEN "heating_immersion_heating_type" ~ '^-?[0-9]+$' THEN "heating_immersion_heating_type"::jsonb + ELSE to_json("heating_immersion_heating_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "heating_cylinder_insulation_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heating_cylinder_insulation_type" IS NULL THEN NULL + WHEN "heating_cylinder_insulation_type" ~ '^-?[0-9]+$' THEN "heating_cylinder_insulation_type"::jsonb + ELSE to_json("heating_cylinder_insulation_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "heating_secondary_heating_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heating_secondary_heating_type" IS NULL THEN NULL + WHEN "heating_secondary_heating_type" ~ '^-?[0-9]+$' THEN "heating_secondary_heating_type"::jsonb + ELSE to_json("heating_secondary_heating_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_property" ALTER COLUMN "heating_shower_outlet_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "heating_shower_outlet_type" IS NULL THEN NULL + WHEN "heating_shower_outlet_type" ~ '^-?[0-9]+$' THEN "heating_shower_outlet_type"::jsonb + ELSE to_json("heating_shower_outlet_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "glazing_gap" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "glazing_gap" IS NULL THEN NULL + WHEN "glazing_gap" ~ '^-?[0-9]+$' THEN "glazing_gap"::jsonb + ELSE to_json("glazing_gap")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "orientation" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "orientation" IS NULL THEN NULL + WHEN "orientation" ~ '^-?[0-9]+$' THEN "orientation"::jsonb + ELSE to_json("orientation")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "window_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "window_type" IS NULL THEN NULL + WHEN "window_type" ~ '^-?[0-9]+$' THEN "window_type"::jsonb + ELSE to_json("window_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "glazing_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "glazing_type" IS NULL THEN NULL + WHEN "glazing_type" ~ '^-?[0-9]+$' THEN "glazing_type"::jsonb + ELSE to_json("glazing_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "draught_proofed" + SET DATA TYPE jsonb + USING to_json("draught_proofed")::jsonb;--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "window_location" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "window_location" IS NULL THEN NULL + WHEN "window_location" ~ '^-?[0-9]+$' THEN "window_location"::jsonb + ELSE to_json("window_location")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "window_wall_type" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "window_wall_type" IS NULL THEN NULL + WHEN "window_wall_type" ~ '^-?[0-9]+$' THEN "window_wall_type"::jsonb + ELSE to_json("window_wall_type")::jsonb + END + );--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "permanent_shutters_present" + SET DATA TYPE jsonb + USING to_json("permanent_shutters_present")::jsonb;--> statement-breakpoint +ALTER TABLE "epc_window" ALTER COLUMN "transmission_data_source" + SET DATA TYPE jsonb + USING ( + CASE + WHEN "transmission_data_source" IS NULL THEN NULL + WHEN "transmission_data_source" ~ '^-?[0-9]+$' THEN "transmission_data_source"::jsonb + ELSE to_json("transmission_data_source")::jsonb + END + );--> statement-breakpoint ALTER TABLE "epc_building_part" ADD COLUMN "roof_construction_type" text;--> statement-breakpoint ALTER TABLE "epc_building_part" ADD COLUMN "curtain_wall_age" text;--> statement-breakpoint ALTER TABLE "epc_property" ADD COLUMN "mechanical_vent_duct_insulation_level" integer;--> statement-breakpoint @@ -90,4 +278,4 @@ ALTER TABLE "epc_property" ADD COLUMN "ventilation_has_draught_lobby" boolean;-- ALTER TABLE "epc_property" ADD COLUMN "ventilation_air_permeability_ap4_m3_h_m2" real;--> statement-breakpoint ALTER TABLE "epc_property" ADD COLUMN "ventilation_mechanical_ventilation_kind" text;--> statement-breakpoint ALTER TABLE "epc_renewable_heat_incentive" ADD CONSTRAINT "epc_renewable_heat_incentive_epc_property_id_epc_property_id_fk" FOREIGN KEY ("epc_property_id") REFERENCES "public"."epc_property"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint -ALTER TABLE "property_baseline_performance" ADD CONSTRAINT "property_baseline_performance_property_id_property_id_fk" FOREIGN KEY ("property_id") REFERENCES "public"."property"("id") ON DELETE no action ON UPDATE no action; \ No newline at end of file +ALTER TABLE "property_baseline_performance" ADD CONSTRAINT "property_baseline_performance_property_id_property_id_fk" FOREIGN KEY ("property_id") REFERENCES "public"."property"("id") ON DELETE no action ON UPDATE no action;