DO $$ BEGIN CREATE TYPE "status" AS ENUM('pending', 'success', 'error'); EXCEPTION WHEN duplicate_object THEN null; END $$; --> statement-breakpoint CREATE TABLE IF NOT EXISTS "letters" ( "id" serial PRIMARY KEY NOT NULL, "created_at" timestamp DEFAULT now(), "updated_at" timestamp DEFAULT now(), "first_name" text NOT NULL, "last_name" text NOT NULL, "lang" text NOT NULL, "email" text NOT NULL, "phone" text NOT NULL, "variant" text NOT NULL, "gender" text, "branch" text NOT NULL, "is_client" boolean NOT NULL, "message" text NOT NULL, "is_subscribed" boolean NOT NULL, "confirmation_token" text NOT NULL, "is_confirmed" boolean DEFAULT false, CONSTRAINT "letters_email_unique" UNIQUE("email") ); --> statement-breakpoint CREATE TABLE IF NOT EXISTS "messages" ( "id" serial PRIMARY KEY NOT NULL, "letter_id" integer, "from" text NOT NULL, "to" text NOT NULL, "status" "status" NOT NULL ); --> statement-breakpoint DO $$ BEGIN ALTER TABLE "messages" ADD CONSTRAINT "messages_letter_id_letters_id_fk" FOREIGN KEY ("letter_id") REFERENCES "letters"("id") ON DELETE no action ON UPDATE no action; EXCEPTION WHEN duplicate_object THEN null; END $$;