- Add globalItemId and purchasePriceCents columns to items table - Add globalItemId column to threadCandidates table - Add tags and globalItemTags tables for tag system - Remove itemGlobalLinks table (replaced by direct FK) - Generate migration with data migration step before table drop
28 lines
1.8 KiB
SQL
28 lines
1.8 KiB
SQL
CREATE TABLE "tags" (
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"name" text NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
CONSTRAINT "tags_name_unique" UNIQUE("name")
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "global_item_tags" (
|
|
"global_item_id" integer NOT NULL,
|
|
"tag_id" integer NOT NULL,
|
|
CONSTRAINT "global_item_tags_global_item_id_tag_id_pk" PRIMARY KEY("global_item_id","tag_id")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "items" ADD COLUMN "global_item_id" integer;--> statement-breakpoint
|
|
ALTER TABLE "items" ADD COLUMN "purchase_price_cents" integer;--> statement-breakpoint
|
|
ALTER TABLE "thread_candidates" ADD COLUMN "global_item_id" integer;--> statement-breakpoint
|
|
UPDATE "items" SET "global_item_id" = (
|
|
SELECT "global_item_id" FROM "item_global_links"
|
|
WHERE "item_global_links"."item_id" = "items"."id"
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "item_global_links" DISABLE ROW LEVEL SECURITY;--> statement-breakpoint
|
|
DROP TABLE "item_global_links" CASCADE;--> statement-breakpoint
|
|
ALTER TABLE "global_item_tags" ADD CONSTRAINT "global_item_tags_global_item_id_global_items_id_fk" FOREIGN KEY ("global_item_id") REFERENCES "public"."global_items"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "global_item_tags" ADD CONSTRAINT "global_item_tags_tag_id_tags_id_fk" FOREIGN KEY ("tag_id") REFERENCES "public"."tags"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "items" ADD CONSTRAINT "items_global_item_id_global_items_id_fk" FOREIGN KEY ("global_item_id") REFERENCES "public"."global_items"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "thread_candidates" ADD CONSTRAINT "thread_candidates_global_item_id_global_items_id_fk" FOREIGN KEY ("global_item_id") REFERENCES "public"."global_items"("id") ON DELETE no action ON UPDATE no action;
|