adding tags to schema

This commit is contained in:
Camille Frantz 2025-01-27 12:47:34 -06:00
parent 3743d52ac3
commit 436c8748b5
Signed by: fyrfli
SSH Key Fingerprint: SHA256:anc9kpwB26LKDnZerjcRFNSnp4JSd+rX62ouDLrh46o

121
schema-202401271247.sql Normal file
View File

@ -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);