CREATE TABLE IF NOT EXISTS "follows" ( "user_id" integer, "follower_id" integer, CONSTRAINT "follows_user_id_follower_id_pk" PRIMARY KEY("user_id","follower_id") ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "invite_codes" ( "token" varchar(22) PRIMARY KEY NOT NULL, "user_id" integer, "granted" timestamp NOT NULL, "expires" timestamp DEFAULT '1970-01-01 00:00:00.000', "confers" integer DEFAULT 0 ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "journal_entries" ( "id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "journal_entries_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "user" integer NOT NULL, "mood-change" integer DEFAULT 0 NOT NULL, "entry" varchar(4096) DEFAULT '' NOT NULL, "visibility" integer DEFAULT 1 NOT NULL, "date" timestamp NOT NULL ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "profiles" ( "user" integer PRIMARY KEY NOT NULL, "bio" varchar(1024) DEFAULT '' NOT NULL, "website" varchar DEFAULT '' NOT NULL ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "updates" ( "id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "updates_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "user" integer NOT NULL, "mood" integer DEFAULT 0 NOT NULL, "description" varchar(512) DEFAULT '' NOT NULL, "date" timestamp NOT NULL ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "users" ( "id" integer PRIMARY KEY GENERATED ALWAYS AS IDENTITY (sequence name "users_id_seq" INCREMENT BY 1 MINVALUE 1 MAXVALUE 2147483647 START WITH 1 CACHE 1), "email" varchar NOT NULL, "name" varchar(26) NOT NULL, "pass" varchar(255) NOT NULL, "registered" timestamp NOT NULL, "status" integer DEFAULT 0 NOT NULL, CONSTRAINT "users_email_unique" UNIQUE("email"), CONSTRAINT "users_name_unique" UNIQUE("name") ); --> statement-breakpoint DO $$ BEGIN ALTER TABLE "follows" ADD CONSTRAINT "follows_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "follows" ADD CONSTRAINT "follows_follower_id_users_id_fk" FOREIGN KEY ("follower_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "invite_codes" ADD CONSTRAINT "invite_codes_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "journal_entries" ADD CONSTRAINT "journal_entries_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "profiles" ADD CONSTRAINT "profiles_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint DO $$ BEGIN ALTER TABLE "updates" ADD CONSTRAINT "updates_user_users_id_fk" FOREIGN KEY ("user") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$; -- session CREATE TABLE "session" ( "sid" varchar NOT NULL COLLATE "default", "sess" json NOT NULL, "expire" timestamp(6) NOT NULL ) WITH (OIDS=FALSE); ALTER TABLE "session" ADD CONSTRAINT "session_pkey" PRIMARY KEY ("sid") NOT DEFERRABLE INITIALLY IMMEDIATE; CREATE INDEX "IDX_session_expire" ON "session" ("expire");