175 lines
4.8 KiB
PL/PgSQL
175 lines
4.8 KiB
PL/PgSQL
-- This script was generated by the ERD tool in pgAdmin 4.
|
|
-- Please log an issue at https://github.com/pgadmin-org/pgadmin4/issues/new/choose if you find any bugs, including reproduction steps.
|
|
BEGIN;
|
|
|
|
ALTER TABLE IF EXISTS public."Email" DROP CONSTRAINT IF EXISTS email_avatar_fkey;
|
|
ALTER TABLE IF EXISTS public."EmailDisplayName" DROP CONSTRAINT IF EXISTS email_id_fk;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_to_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_cc_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_from_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_header_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_file_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_body_id_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_thread_fkey;
|
|
ALTER TABLE IF EXISTS public."Message" DROP CONSTRAINT IF EXISTS message_tag_fkey;
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Email"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
address text NOT NULL,
|
|
avatar_id integer,
|
|
PRIMARY KEY (id),
|
|
CONSTRAINT avatar_id UNIQUE (avatar_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."EmailDisplayName"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
email_id integer NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Message"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
subject text,
|
|
"from" integer,
|
|
"to" integer,
|
|
cc integer,
|
|
header_id integer,
|
|
hash text NOT NULL,
|
|
file_id integer NOT NULL,
|
|
date timestamp with time zone NOT NULL,
|
|
unread boolean NOT NULL,
|
|
body_id integer NOT NULL,
|
|
thread_id integer NOT NULL,
|
|
tag_id integer,
|
|
CONSTRAINT body_id UNIQUE (body_id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Header"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
key text NOT NULL,
|
|
value text NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."File"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
path text NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Avatar"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
url text NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Body"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
text text NOT NULL,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Thread"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public."Tag"
|
|
(
|
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY,
|
|
name text NOT NULL,
|
|
display text,
|
|
fg_color integer,
|
|
bg_color integer,
|
|
PRIMARY KEY (id)
|
|
);
|
|
|
|
ALTER TABLE IF EXISTS public."Email"
|
|
ADD CONSTRAINT email_avatar_fkey FOREIGN KEY (avatar_id)
|
|
REFERENCES public."Avatar" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."EmailDisplayName"
|
|
ADD CONSTRAINT email_id_fk FOREIGN KEY (email_id)
|
|
REFERENCES public."Email" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_to_fkey FOREIGN KEY ("to")
|
|
REFERENCES public."Email" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_cc_fkey FOREIGN KEY (cc)
|
|
REFERENCES public."Email" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_from_fkey FOREIGN KEY ("from")
|
|
REFERENCES public."Email" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_header_fkey FOREIGN KEY (header_id)
|
|
REFERENCES public."Header" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_file_fkey FOREIGN KEY (file_id)
|
|
REFERENCES public."File" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_body_id_fkey FOREIGN KEY (body_id)
|
|
REFERENCES public."Body" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_thread_fkey FOREIGN KEY (thread_id)
|
|
REFERENCES public."Thread" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
|
|
ALTER TABLE IF EXISTS public."Message"
|
|
ADD CONSTRAINT message_tag_fkey FOREIGN KEY (tag_id)
|
|
REFERENCES public."Tag" (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION
|
|
ON DELETE NO ACTION
|
|
NOT VALID;
|
|
|
|
END;
|