-- Downloaded from: https://github.com/kjanus03/tsn/blob/4b71c1446d26e4a0dc10707297d52554ab66dfc4/tsn_db_architecture.sql -- -- PostgreSQL database dump -- -- Dumped from database version 17.5 -- Dumped by pg_dump version 17.5 -- Started on 2025-06-03 16:37:21 SET statement_timeout = 0; SET lock_timeout = 0; SET idle_in_transaction_session_timeout = 0; SET transaction_timeout = 0; SET client_encoding = 'UTF8'; SET standard_conforming_strings = on; SELECT pg_catalog.set_config('search_path', '', false); SET check_function_bodies = false; SET xmloption = content; SET client_min_messages = warning; SET row_security = off; -- -- TOC entry 886 (class 1247 OID 16516) -- Name: genderenum; Type: TYPE; Schema: public; Owner: postgres -- CREATE TYPE public.genderenum AS ENUM ( 'MALE', 'FEMALE', 'OTHER', 'PREFER_NOT_TO_SAY' ); ALTER TYPE public.genderenum OWNER TO postgres; -- -- TOC entry 868 (class 1247 OID 16414) -- Name: visibilityenum; Type: TYPE; Schema: public; Owner: postgres -- CREATE TYPE public.visibilityenum AS ENUM ( 'PUBLIC', 'FRIENDS', 'PRIVATE' ); ALTER TYPE public.visibilityenum OWNER TO postgres; SET default_tablespace = ''; SET default_table_access_method = heap; -- -- TOC entry 217 (class 1259 OID 16394) -- Name: alembic_version; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.alembic_version ( version_num character varying(32) NOT NULL ); ALTER TABLE public.alembic_version OWNER TO postgres; -- -- TOC entry 229 (class 1259 OID 16546) -- Name: comment; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.comment ( id integer NOT NULL, user_id integer NOT NULL, post_id integer, content text NOT NULL, "timestamp" timestamp without time zone NOT NULL, share_id integer ); ALTER TABLE public.comment OWNER TO postgres; -- -- TOC entry 228 (class 1259 OID 16545) -- Name: comment_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.comment_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.comment_id_seq OWNER TO postgres; -- -- TOC entry 4998 (class 0 OID 0) -- Dependencies: 228 -- Name: comment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.comment_id_seq OWNED BY public.comment.id; -- -- TOC entry 222 (class 1259 OID 16435) -- Name: friendships; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.friendships ( user_id integer NOT NULL, friend_id integer NOT NULL ); ALTER TABLE public.friendships OWNER TO postgres; -- -- TOC entry 224 (class 1259 OID 16451) -- Name: like; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."like" ( id integer NOT NULL, user_id integer NOT NULL, post_id integer, comment_id integer, share_id integer, "timestamp" timestamp without time zone ); ALTER TABLE public."like" OWNER TO postgres; -- -- TOC entry 223 (class 1259 OID 16450) -- Name: like_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.like_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.like_id_seq OWNER TO postgres; -- -- TOC entry 4999 (class 0 OID 0) -- Dependencies: 223 -- Name: like_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.like_id_seq OWNED BY public."like".id; -- -- TOC entry 233 (class 1259 OID 16611) -- Name: message; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.message ( id integer NOT NULL, sender_id integer NOT NULL, recipient_id integer NOT NULL, content text NOT NULL, "timestamp" timestamp without time zone NOT NULL, is_read boolean NOT NULL ); ALTER TABLE public.message OWNER TO postgres; -- -- TOC entry 232 (class 1259 OID 16610) -- Name: message_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.message_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.message_id_seq OWNER TO postgres; -- -- TOC entry 5000 (class 0 OID 0) -- Dependencies: 232 -- Name: message_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.message_id_seq OWNED BY public.message.id; -- -- TOC entry 221 (class 1259 OID 16422) -- Name: post; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.post ( id integer NOT NULL, user_id integer NOT NULL, content text NOT NULL, visibility public.visibilityenum NOT NULL, "timestamp" timestamp without time zone NOT NULL, media character varying(255) ); ALTER TABLE public.post OWNER TO postgres; -- -- TOC entry 220 (class 1259 OID 16421) -- Name: post_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.post_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.post_id_seq OWNER TO postgres; -- -- TOC entry 5001 (class 0 OID 0) -- Dependencies: 220 -- Name: post_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.post_id_seq OWNED BY public.post.id; -- -- TOC entry 226 (class 1259 OID 16470) -- Name: role; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.role ( id integer NOT NULL, name character varying(80), description character varying(255) ); ALTER TABLE public.role OWNER TO postgres; -- -- TOC entry 225 (class 1259 OID 16469) -- Name: role_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.role_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.role_id_seq OWNER TO postgres; -- -- TOC entry 5002 (class 0 OID 0) -- Dependencies: 225 -- Name: role_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.role_id_seq OWNED BY public.role.id; -- -- TOC entry 227 (class 1259 OID 16478) -- Name: roles_users; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.roles_users ( user_id integer, role_id integer ); ALTER TABLE public.roles_users OWNER TO postgres; -- -- TOC entry 231 (class 1259 OID 16565) -- Name: share; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public.share ( id integer NOT NULL, user_id integer NOT NULL, post_id integer NOT NULL, content text, "timestamp" timestamp without time zone NOT NULL ); ALTER TABLE public.share OWNER TO postgres; -- -- TOC entry 230 (class 1259 OID 16564) -- Name: share_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.share_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.share_id_seq OWNER TO postgres; -- -- TOC entry 5003 (class 0 OID 0) -- Dependencies: 230 -- Name: share_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.share_id_seq OWNED BY public.share.id; -- -- TOC entry 219 (class 1259 OID 16400) -- Name: user; Type: TABLE; Schema: public; Owner: postgres -- CREATE TABLE public."user" ( id integer NOT NULL, is_active boolean DEFAULT true NOT NULL, username character varying(64) NOT NULL, email character varying(255) NOT NULL, password character varying(255) NOT NULL, phone character varying(64) NOT NULL, date_birth date NOT NULL, gender public.genderenum NOT NULL, fs_uniquifier character varying(255) NOT NULL, confirmed_at timestamp without time zone, profile_pic character varying(255) NOT NULL, first_name character varying(64) NOT NULL, last_name character varying(64) NOT NULL, biography text, location character varying(100), date_joined date NOT NULL ); ALTER TABLE public."user" OWNER TO postgres; -- -- TOC entry 218 (class 1259 OID 16399) -- Name: user_id_seq; Type: SEQUENCE; Schema: public; Owner: postgres -- CREATE SEQUENCE public.user_id_seq AS integer START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE CACHE 1; ALTER SEQUENCE public.user_id_seq OWNER TO postgres; -- -- TOC entry 5004 (class 0 OID 0) -- Dependencies: 218 -- Name: user_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: postgres -- ALTER SEQUENCE public.user_id_seq OWNED BY public."user".id; -- -- TOC entry 4795 (class 2604 OID 16549) -- Name: comment id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.comment ALTER COLUMN id SET DEFAULT nextval('public.comment_id_seq'::regclass); -- -- TOC entry 4793 (class 2604 OID 16454) -- Name: like id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ALTER COLUMN id SET DEFAULT nextval('public.like_id_seq'::regclass); -- -- TOC entry 4797 (class 2604 OID 16614) -- Name: message id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.message ALTER COLUMN id SET DEFAULT nextval('public.message_id_seq'::regclass); -- -- TOC entry 4792 (class 2604 OID 16425) -- Name: post id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.post ALTER COLUMN id SET DEFAULT nextval('public.post_id_seq'::regclass); -- -- TOC entry 4794 (class 2604 OID 16473) -- Name: role id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.role ALTER COLUMN id SET DEFAULT nextval('public.role_id_seq'::regclass); -- -- TOC entry 4796 (class 2604 OID 16568) -- Name: share id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.share ALTER COLUMN id SET DEFAULT nextval('public.share_id_seq'::regclass); -- -- TOC entry 4790 (class 2604 OID 16403) -- Name: user id; Type: DEFAULT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ALTER COLUMN id SET DEFAULT nextval('public.user_id_seq'::regclass); -- -- TOC entry 4799 (class 2606 OID 16398) -- Name: alembic_version alembic_version_pkc; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.alembic_version ADD CONSTRAINT alembic_version_pkc PRIMARY KEY (version_num); -- -- TOC entry 4827 (class 2606 OID 16553) -- Name: comment comment_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.comment ADD CONSTRAINT comment_pkey PRIMARY KEY (id); -- -- TOC entry 4813 (class 2606 OID 16439) -- Name: friendships friendships_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.friendships ADD CONSTRAINT friendships_pkey PRIMARY KEY (user_id, friend_id); -- -- TOC entry 4815 (class 2606 OID 16456) -- Name: like like_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT like_pkey PRIMARY KEY (id); -- -- TOC entry 4831 (class 2606 OID 16618) -- Name: message message_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.message ADD CONSTRAINT message_pkey PRIMARY KEY (id); -- -- TOC entry 4811 (class 2606 OID 16429) -- Name: post post_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.post ADD CONSTRAINT post_pkey PRIMARY KEY (id); -- -- TOC entry 4823 (class 2606 OID 16477) -- Name: role role_name_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.role ADD CONSTRAINT role_name_key UNIQUE (name); -- -- TOC entry 4825 (class 2606 OID 16475) -- Name: role role_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.role ADD CONSTRAINT role_pkey PRIMARY KEY (id); -- -- TOC entry 4829 (class 2606 OID 16572) -- Name: share share_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.share ADD CONSTRAINT share_pkey PRIMARY KEY (id); -- -- TOC entry 4817 (class 2606 OID 16584) -- Name: like uq_user_comment_like; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT uq_user_comment_like UNIQUE (user_id, comment_id); -- -- TOC entry 4819 (class 2606 OID 16586) -- Name: like uq_user_post_like; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT uq_user_post_like UNIQUE (user_id, post_id); -- -- TOC entry 4821 (class 2606 OID 16588) -- Name: like uq_user_share_like; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT uq_user_share_like UNIQUE (user_id, share_id); -- -- TOC entry 4801 (class 2606 OID 16410) -- Name: user user_email_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ADD CONSTRAINT user_email_key UNIQUE (email); -- -- TOC entry 4803 (class 2606 OID 16492) -- Name: user user_fs_uniquifier_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ADD CONSTRAINT user_fs_uniquifier_key UNIQUE (fs_uniquifier); -- -- TOC entry 4805 (class 2606 OID 16494) -- Name: user user_phone_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ADD CONSTRAINT user_phone_key UNIQUE (phone); -- -- TOC entry 4807 (class 2606 OID 16408) -- Name: user user_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ADD CONSTRAINT user_pkey PRIMARY KEY (id); -- -- TOC entry 4809 (class 2606 OID 16412) -- Name: user user_username_key; Type: CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."user" ADD CONSTRAINT user_username_key UNIQUE (username); -- -- TOC entry 4841 (class 2606 OID 16554) -- Name: comment comment_post_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.comment ADD CONSTRAINT comment_post_id_fkey FOREIGN KEY (post_id) REFERENCES public.post(id) ON DELETE CASCADE; -- -- TOC entry 4842 (class 2606 OID 16629) -- Name: comment comment_share_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.comment ADD CONSTRAINT comment_share_id_fkey FOREIGN KEY (share_id) REFERENCES public.share(id) ON DELETE CASCADE; -- -- TOC entry 4843 (class 2606 OID 16559) -- Name: comment comment_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.comment ADD CONSTRAINT comment_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id) ON DELETE CASCADE; -- -- TOC entry 4833 (class 2606 OID 16440) -- Name: friendships friendships_friend_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.friendships ADD CONSTRAINT friendships_friend_id_fkey FOREIGN KEY (friend_id) REFERENCES public."user"(id); -- -- TOC entry 4834 (class 2606 OID 16445) -- Name: friendships friendships_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.friendships ADD CONSTRAINT friendships_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id); -- -- TOC entry 4835 (class 2606 OID 16589) -- Name: like like_comment_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT like_comment_id_fkey FOREIGN KEY (comment_id) REFERENCES public.comment(id) ON DELETE CASCADE; -- -- TOC entry 4836 (class 2606 OID 16599) -- Name: like like_post_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT like_post_id_fkey FOREIGN KEY (post_id) REFERENCES public.post(id) ON DELETE CASCADE; -- -- TOC entry 4837 (class 2606 OID 16594) -- Name: like like_share_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT like_share_id_fkey FOREIGN KEY (share_id) REFERENCES public.share(id) ON DELETE CASCADE; -- -- TOC entry 4838 (class 2606 OID 16604) -- Name: like like_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public."like" ADD CONSTRAINT like_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id) ON DELETE CASCADE; -- -- TOC entry 4846 (class 2606 OID 16619) -- Name: message message_recipient_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.message ADD CONSTRAINT message_recipient_id_fkey FOREIGN KEY (recipient_id) REFERENCES public."user"(id) ON DELETE CASCADE; -- -- TOC entry 4847 (class 2606 OID 16624) -- Name: message message_sender_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.message ADD CONSTRAINT message_sender_id_fkey FOREIGN KEY (sender_id) REFERENCES public."user"(id) ON DELETE CASCADE; -- -- TOC entry 4832 (class 2606 OID 16430) -- Name: post post_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.post ADD CONSTRAINT post_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id); -- -- TOC entry 4839 (class 2606 OID 16481) -- Name: roles_users roles_users_role_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.roles_users ADD CONSTRAINT roles_users_role_id_fkey FOREIGN KEY (role_id) REFERENCES public.role(id); -- -- TOC entry 4840 (class 2606 OID 16486) -- Name: roles_users roles_users_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.roles_users ADD CONSTRAINT roles_users_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id); -- -- TOC entry 4844 (class 2606 OID 16573) -- Name: share share_post_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.share ADD CONSTRAINT share_post_id_fkey FOREIGN KEY (post_id) REFERENCES public.post(id) ON DELETE CASCADE; -- -- TOC entry 4845 (class 2606 OID 16578) -- Name: share share_user_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: postgres -- ALTER TABLE ONLY public.share ADD CONSTRAINT share_user_id_fkey FOREIGN KEY (user_id) REFERENCES public."user"(id) ON DELETE CASCADE; -- Completed on 2025-06-03 16:37:22 -- -- PostgreSQL database dump complete --