-- Database export via SQLPro (https://www.sqlprostudio.com/) -- Exported by camille at 28-01-2025 14:06. -- 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, pingable boolean, 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, 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);