From 436c8748b502f2992bf207b7454f6d380586932b Mon Sep 17 00:00:00 2001 From: Camille Frantz Date: Mon, 27 Jan 2025 12:47:34 -0600 Subject: [PATCH] adding tags to schema --- schema-202401271247.sql | 121 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 schema-202401271247.sql diff --git a/schema-202401271247.sql b/schema-202401271247.sql new file mode 100644 index 0000000..08b6b76 --- /dev/null +++ b/schema-202401271247.sql @@ -0,0 +1,121 @@ +-- Database export via SQLPro (https://www.sqlprostudio.com/) +-- Exported by camille at 27-01-2025 12:47. +-- WARNING: This file may contain descructive statements such as DROPs. +-- Please ensure that you are running the script at the proper location. + + +-- BEGIN TABLE public.instances +DROP TABLE IF EXISTS public.instances CASCADE; +BEGIN; + +CREATE TABLE IF NOT EXISTS public.instances ( + id bigint DEFAULT nextval('insances_sampleid_seq'::regclass) NOT NULL, + instance character varying NOT NULL, + record_update_by bigint, + record_updated_at timestamp without time zone, + vote integer DEFAULT 1 NOT NULL, + PRIMARY KEY(id) +); + +COMMIT; + +-- END TABLE public.instances + +-- BEGIN TABLE public.receipt_tags +DROP TABLE IF EXISTS public.receipt_tags CASCADE; +BEGIN; + +CREATE TABLE IF NOT EXISTS public.receipt_tags ( + id bigint DEFAULT nextval('receipt_tags_sampleid_seq'::regclass) NOT NULL, + instance_id bigint NOT NULL, + receipt_id bigint NOT NULL, + tag_id bigint NOT NULL, + PRIMARY KEY(id) +); + +COMMIT; + +-- END TABLE public.receipt_tags + +-- BEGIN TABLE public.receipts +DROP TABLE IF EXISTS public.receipts CASCADE; +BEGIN; + +CREATE TABLE IF NOT EXISTS public.receipts ( + id bigint DEFAULT nextval('receipts_sampleid_seq'::regclass) NOT NULL, + instance_id bigint NOT NULL, + updated_by bigint, + updated_at timestamp without time zone, + original_link character varying NOT NULL, + image_filename character varying, + PRIMARY KEY(id) +); + +COMMIT; + +-- END TABLE public.receipts + +-- BEGIN TABLE public.tags +DROP TABLE IF EXISTS public.tags CASCADE; +BEGIN; + +CREATE TABLE IF NOT EXISTS public.tags ( + id bigint DEFAULT nextval('tags_sampleid_seq'::regclass) NOT NULL, + tag_name character varying NOT NULL, + tag_description character varying NOT NULL, + PRIMARY KEY(id) +); + +COMMIT; + +-- END TABLE public.tags + +-- BEGIN TABLE public.users +DROP TABLE IF EXISTS public.users CASCADE; +BEGIN; + +CREATE TABLE IF NOT EXISTS public.users ( + id bigint DEFAULT nextval('users_sampleid_seq'::regclass) NOT NULL, + username character varying NOT NULL, + fullname character varying, + fedi_address character varying NOT NULL, + active boolean DEFAULT true NOT NULL, + PRIMARY KEY(id) +); + +COMMIT; + +-- END TABLE public.users + +ALTER TABLE IF EXISTS public.instances + ADD CONSTRAINT instances_users_fk + FOREIGN KEY (record_update_by) + REFERENCES public.users (id); + +ALTER TABLE IF EXISTS public.receipt_tags + ADD CONSTRAINT instance_id_fkey + FOREIGN KEY (instance_id, instance_id) + REFERENCES public.instances (id, id) + ON DELETE CASCADE; + +ALTER TABLE IF EXISTS public.receipt_tags + ADD CONSTRAINT tag_id + FOREIGN KEY (tag_id) + REFERENCES public.tags (id); + +ALTER TABLE IF EXISTS public.receipt_tags + ADD CONSTRAINT receipt_id_fkey + FOREIGN KEY (receipt_id) + REFERENCES public.receipts (id); + +ALTER TABLE IF EXISTS public.receipts + ADD CONSTRAINT instance_id_fkey + FOREIGN KEY (instance_id, instance_id) + REFERENCES public.instances (id, id) + ON DELETE CASCADE; + +ALTER TABLE IF EXISTS public.receipts + ADD CONSTRAINT update_by_fkey + FOREIGN KEY (updated_by) + REFERENCES public.users (id); +