From 28120e0e508345f0373a3797dc27072baf1aa248 Mon Sep 17 00:00:00 2001 From: jebw Date: Thu, 25 Apr 2024 15:57:00 +0100 Subject: [PATCH] GL-358 Add tables for GreenLanes custom measures --- ...7140515_add_green_lanes_measures_tables.rb | 27 ++++ db/structure.sql | 136 ++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 db/migrate/20240507140515_add_green_lanes_measures_tables.rb diff --git a/db/migrate/20240507140515_add_green_lanes_measures_tables.rb b/db/migrate/20240507140515_add_green_lanes_measures_tables.rb new file mode 100644 index 000000000..a98658d27 --- /dev/null +++ b/db/migrate/20240507140515_add_green_lanes_measures_tables.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +Sequel.migration do + change do + create_table :green_lanes_measures do + primary_key :id + foreign_key :category_assessment_id, :green_lanes_category_assessments, null: false + String :goods_nomenclature_item_id, size: 10, null: false + String :productline_suffix, size: 2, null: false + Time :created_at, null: false + Time :updated_at, null: false + index %i[category_assessment_id goods_nomenclature_item_id productline_suffix], unique: true + end + + create_table :green_lanes_exemptions do + primary_key :id + String :code, unique: true, null: false + String :description, null: false + Time :created_at, null: false + Time :updated_at, null: false + end + + create_join_table({ category_assessment_id: :green_lanes_category_assessments, + exemption_id: :green_lanes_exemptions }, + name: :green_lanes_category_assessments_exemptions) + end +end diff --git a/db/structure.sql b/db/structure.sql index 312d6efdb..66b7fc8bf 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -3989,6 +3989,16 @@ CREATE TABLE uk.green_lanes_category_assessments ( ); +-- +-- Name: green_lanes_category_assessments_exemptions; Type: TABLE; Schema: uk; Owner: - +-- + +CREATE TABLE uk.green_lanes_category_assessments_exemptions ( + category_assessment_id integer NOT NULL, + exemption_id integer NOT NULL +); + + -- -- Name: green_lanes_category_assessments_id_seq; Type: SEQUENCE; Schema: uk; Owner: - -- @@ -4030,6 +4040,61 @@ ALTER TABLE uk.green_lanes_exempting_certificate_overrides ALTER COLUMN id ADD G ); +-- +-- Name: green_lanes_exemptions; Type: TABLE; Schema: uk; Owner: - +-- + +CREATE TABLE uk.green_lanes_exemptions ( + id integer NOT NULL, + code text NOT NULL, + description text NOT NULL, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + +-- +-- Name: green_lanes_exemptions_id_seq; Type: SEQUENCE; Schema: uk; Owner: - +-- + +ALTER TABLE uk.green_lanes_exemptions ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME uk.green_lanes_exemptions_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + +-- +-- Name: green_lanes_measures; Type: TABLE; Schema: uk; Owner: - +-- + +CREATE TABLE uk.green_lanes_measures ( + id integer NOT NULL, + category_assessment_id integer NOT NULL, + goods_nomenclature_item_id character varying(10) NOT NULL, + productline_suffix character varying(2) NOT NULL, + created_at timestamp without time zone NOT NULL, + updated_at timestamp without time zone NOT NULL +); + + +-- +-- Name: green_lanes_measures_id_seq; Type: SEQUENCE; Schema: uk; Owner: - +-- + +ALTER TABLE uk.green_lanes_measures ALTER COLUMN id ADD GENERATED BY DEFAULT AS IDENTITY ( + SEQUENCE NAME uk.green_lanes_measures_id_seq + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1 +); + + -- -- Name: green_lanes_themes; Type: TABLE; Schema: uk; Owner: - -- @@ -8996,6 +9061,14 @@ ALTER TABLE ONLY uk.goods_nomenclatures_oplog ADD CONSTRAINT goods_nomenclatures_pkey PRIMARY KEY (oid); +-- +-- Name: green_lanes_category_assessments_exemptions green_lanes_category_assessments_exemptions_pkey; Type: CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_category_assessments_exemptions + ADD CONSTRAINT green_lanes_category_assessments_exemptions_pkey PRIMARY KEY (category_assessment_id, exemption_id); + + -- -- Name: green_lanes_category_assessments green_lanes_category_assessments_pkey; Type: CONSTRAINT; Schema: uk; Owner: - -- @@ -9012,6 +9085,30 @@ ALTER TABLE ONLY uk.green_lanes_exempting_certificate_overrides ADD CONSTRAINT green_lanes_exempting_certificate_overrides_pkey PRIMARY KEY (id); +-- +-- Name: green_lanes_exemptions green_lanes_exemptions_code_key; Type: CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_exemptions + ADD CONSTRAINT green_lanes_exemptions_code_key UNIQUE (code); + + +-- +-- Name: green_lanes_exemptions green_lanes_exemptions_pkey; Type: CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_exemptions + ADD CONSTRAINT green_lanes_exemptions_pkey PRIMARY KEY (id); + + +-- +-- Name: green_lanes_measures green_lanes_measures_pkey; Type: CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_measures + ADD CONSTRAINT green_lanes_measures_pkey PRIMARY KEY (id); + + -- -- Name: green_lanes_themes green_lanes_themes_pkey; Type: CONSTRAINT; Schema: uk; Owner: - -- @@ -10737,6 +10834,13 @@ CREATE INDEX goods_nomenclatures_oplog_validity_end_date_index ON uk.goods_nomen CREATE INDEX goods_nomenclatures_oplog_validity_start_date_index ON uk.goods_nomenclatures_oplog USING btree (validity_start_date); +-- +-- Name: green_lanes_category_assessments_exemptions_exemption_id_catego; Type: INDEX; Schema: uk; Owner: - +-- + +CREATE INDEX green_lanes_category_assessments_exemptions_exemption_id_catego ON uk.green_lanes_category_assessments_exemptions USING btree (exemption_id, category_assessment_id); + + -- -- Name: green_lanes_category_assessments_measure_type_id_regulation_id_; Type: INDEX; Schema: uk; Owner: - -- @@ -10751,6 +10855,13 @@ CREATE UNIQUE INDEX green_lanes_category_assessments_measure_type_id_regulation_ CREATE UNIQUE INDEX green_lanes_exempting_certificate_overrides_certificate_code_ce ON uk.green_lanes_exempting_certificate_overrides USING btree (certificate_code, certificate_type_code); +-- +-- Name: green_lanes_measures_category_assessment_id_goods_nomenclature_; Type: INDEX; Schema: uk; Owner: - +-- + +CREATE UNIQUE INDEX green_lanes_measures_category_assessment_id_goods_nomenclature_ ON uk.green_lanes_measures USING btree (category_assessment_id, goods_nomenclature_item_id, productline_suffix); + + -- -- Name: green_lanes_themes_section_subsection_index; Type: INDEX; Schema: uk; Owner: - -- @@ -12173,6 +12284,22 @@ ALTER TABLE ONLY uk.chemical_names ADD CONSTRAINT chemical_names_chemical_id_fkey FOREIGN KEY (chemical_id) REFERENCES uk.chemicals(id); +-- +-- Name: green_lanes_category_assessments_exemptions green_lanes_category_assessments_ex_category_assessment_id_fkey; Type: FK CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_category_assessments_exemptions + ADD CONSTRAINT green_lanes_category_assessments_ex_category_assessment_id_fkey FOREIGN KEY (category_assessment_id) REFERENCES uk.green_lanes_category_assessments(id); + + +-- +-- Name: green_lanes_category_assessments_exemptions green_lanes_category_assessments_exemptions_exemption_id_fkey; Type: FK CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_category_assessments_exemptions + ADD CONSTRAINT green_lanes_category_assessments_exemptions_exemption_id_fkey FOREIGN KEY (exemption_id) REFERENCES uk.green_lanes_exemptions(id); + + -- -- Name: green_lanes_category_assessments green_lanes_category_assessments_theme_id_fkey; Type: FK CONSTRAINT; Schema: uk; Owner: - -- @@ -12181,6 +12308,14 @@ ALTER TABLE ONLY uk.green_lanes_category_assessments ADD CONSTRAINT green_lanes_category_assessments_theme_id_fkey FOREIGN KEY (theme_id) REFERENCES uk.green_lanes_themes(id); +-- +-- Name: green_lanes_measures green_lanes_measures_category_assessment_id_fkey; Type: FK CONSTRAINT; Schema: uk; Owner: - +-- + +ALTER TABLE ONLY uk.green_lanes_measures + ADD CONSTRAINT green_lanes_measures_category_assessment_id_fkey FOREIGN KEY (category_assessment_id) REFERENCES uk.green_lanes_category_assessments(id); + + -- -- Name: news_collections_news_items news_collections_news_items_collection_id_fkey; Type: FK CONSTRAINT; Schema: uk; Owner: - -- @@ -12395,3 +12530,4 @@ INSERT INTO "schema_migrations" ("filename") VALUES ('20240110120545_adds_user_p INSERT INTO "schema_migrations" ("filename") VALUES ('20240129180350_add_green_lanes_tables.rb'); INSERT INTO "schema_migrations" ("filename") VALUES ('20240429125446_change_title_limit_in_sections.rb'); INSERT INTO "schema_migrations" ("filename") VALUES ('20240429135110_create_green_lanes_exempting_certificate_overrides.rb'); +INSERT INTO "schema_migrations" ("filename") VALUES ('20240507140515_add_green_lanes_measures_tables.rb'); \ No newline at end of file