Skip to content

Commit f8678b1

Browse files
authored
fix(migrations): remove duplicate indexes (#2501)
1 parent 0ebb45b commit f8678b1

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
-- Step 1: Add column as NULLABLE first (instant, no lock)
2-
ALTER TABLE "workflow_execution_logs" ADD COLUMN "workspace_id" text;--> statement-breakpoint
2+
ALTER TABLE "workflow_execution_logs" ADD COLUMN IF NOT EXISTS "workspace_id" text;--> statement-breakpoint
33

44
-- Step 2: Backfill workspace_id from workflow table
55
UPDATE "workflow_execution_logs" wel
66
SET "workspace_id" = w."workspace_id"
77
FROM "workflow" w
88
WHERE wel."workflow_id" = w."id"
9-
AND w."workspace_id" IS NOT NULL;--> statement-breakpoint
9+
AND w."workspace_id" IS NOT NULL
10+
AND wel."workspace_id" IS NULL;--> statement-breakpoint
1011

1112
-- Step 3: Delete orphaned execution logs (from workflows without workspaces)
1213
DELETE FROM "workflow_execution_logs"
@@ -16,11 +17,15 @@ WHERE "workspace_id" IS NULL;--> statement-breakpoint
1617
ALTER TABLE "workflow_execution_logs" ALTER COLUMN "workspace_id" SET NOT NULL;--> statement-breakpoint
1718

1819
-- Step 5: Add foreign key constraint
19-
ALTER TABLE "workflow_execution_logs" ADD CONSTRAINT "workflow_execution_logs_workspace_id_workspace_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
20+
DO $$
21+
BEGIN
22+
IF NOT EXISTS (
23+
SELECT 1 FROM pg_constraint WHERE conname = 'workflow_execution_logs_workspace_id_workspace_id_fk'
24+
) THEN
25+
ALTER TABLE "workflow_execution_logs" ADD CONSTRAINT "workflow_execution_logs_workspace_id_workspace_id_fk"
26+
FOREIGN KEY ("workspace_id") REFERENCES "public"."workspace"("id") ON DELETE cascade ON UPDATE no action;
27+
END IF;
28+
END $$;--> statement-breakpoint
2029

2130
-- Step 6: Create indexes
22-
CREATE INDEX "workflow_execution_logs_workspace_started_at_idx" ON "workflow_execution_logs" USING btree ("workspace_id","started_at");--> statement-breakpoint
23-
CREATE INDEX "api_key_workspace_type_idx" ON "api_key" USING btree ("workspace_id","type");--> statement-breakpoint
24-
CREATE INDEX "api_key_user_type_idx" ON "api_key" USING btree ("user_id","type");--> statement-breakpoint
25-
CREATE INDEX "verification_expires_at_idx" ON "verification" USING btree ("expires_at");--> statement-breakpoint
26-
CREATE INDEX "workflow_blocks_type_idx" ON "workflow_blocks" USING btree ("type");
31+
CREATE INDEX IF NOT EXISTS "workflow_execution_logs_workspace_started_at_idx" ON "workflow_execution_logs" USING btree ("workspace_id","started_at");

0 commit comments

Comments
 (0)