Files
erika/drizzle/0018_authenticated_share.sql
T

40 lines
2.1 KiB
SQL

CREATE SCHEMA "share";
--> statement-breakpoint
CREATE TABLE "share"."comment" (
"id" text PRIMARY KEY NOT NULL,
"share_id" text NOT NULL,
"body" text NOT NULL,
"author_id" text,
"author_discord_id" text NOT NULL,
"author_name" text NOT NULL,
"author_avatar_url" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "share"."text" (
"id" text PRIMARY KEY NOT NULL,
"content" text NOT NULL,
"description" text,
"image_cdn_id" text,
"source" text NOT NULL,
"author_id" text,
"author_discord_id" text NOT NULL,
"author_name" text NOT NULL,
"author_avatar_url" text,
"created_at" timestamp with time zone DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "share"."comment" ADD CONSTRAINT "comment_share_id_text_id_fk" FOREIGN KEY ("share_id") REFERENCES "share"."text"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "share"."comment" ADD CONSTRAINT "comment_author_id_user_id_fk" FOREIGN KEY ("author_id") REFERENCES "account"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "share"."text" ADD CONSTRAINT "text_image_cdn_id_cdn_id_fk" FOREIGN KEY ("image_cdn_id") REFERENCES "public"."cdn"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "share"."text" ADD CONSTRAINT "text_author_id_user_id_fk" FOREIGN KEY ("author_id") REFERENCES "account"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "share_comment_share_created_id_idx" ON "share"."comment" USING btree ("share_id","created_at","id");--> statement-breakpoint
CREATE INDEX "share_text_author_created_idx" ON "share"."text" USING btree ("author_discord_id","created_at");--> statement-breakpoint
UPDATE "account"."user" AS "user"
SET "discord_id" = "account"."providerAccountId"
FROM "account"."account" AS "account"
WHERE "account"."provider" = 'discord'
AND "account"."userId" = "user"."id"
AND "user"."discord_id" IS NULL;--> statement-breakpoint
CREATE UNIQUE INDEX "user_discord_id_unique" ON "account"."user" USING btree ("discord_id");