Skip to content

Commit 81f162e

Browse files
committed
make migration idempotent
1 parent 120e9a3 commit 81f162e

1 file changed

Lines changed: 27 additions & 10 deletions

File tree

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
CREATE TABLE "workflow_deployment_version" (
1+
CREATE TABLE IF NOT EXISTS "workflow_deployment_version" (
22
"id" text PRIMARY KEY NOT NULL,
33
"workflow_id" text NOT NULL,
44
"version" integer NOT NULL,
@@ -8,12 +8,29 @@ CREATE TABLE "workflow_deployment_version" (
88
"created_by" text
99
);
1010
--> statement-breakpoint
11-
DROP INDEX "workflow_blocks_parent_id_idx";--> statement-breakpoint
12-
DROP INDEX "workflow_blocks_workflow_parent_idx";--> statement-breakpoint
13-
ALTER TABLE "workflow_deployment_version" ADD CONSTRAINT "workflow_deployment_version_workflow_id_workflow_id_fk" FOREIGN KEY ("workflow_id") REFERENCES "public"."workflow"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
14-
CREATE INDEX "workflow_deployment_version_workflow_id_idx" ON "workflow_deployment_version" USING btree ("workflow_id");--> statement-breakpoint
15-
CREATE UNIQUE INDEX "workflow_deployment_version_workflow_version_unique" ON "workflow_deployment_version" USING btree ("workflow_id","version");--> statement-breakpoint
16-
CREATE INDEX "workflow_deployment_version_workflow_active_idx" ON "workflow_deployment_version" USING btree ("workflow_id","is_active");--> statement-breakpoint
17-
CREATE INDEX "workflow_deployment_version_created_at_idx" ON "workflow_deployment_version" USING btree ("created_at");--> statement-breakpoint
18-
ALTER TABLE "workflow_blocks" DROP COLUMN "parent_id";--> statement-breakpoint
19-
ALTER TABLE "workflow_blocks" DROP COLUMN "extent";
11+
DROP INDEX IF EXISTS "workflow_blocks_parent_id_idx";--> statement-breakpoint
12+
DROP INDEX IF EXISTS "workflow_blocks_workflow_parent_idx";--> statement-breakpoint
13+
DO $$
14+
BEGIN
15+
IF NOT EXISTS (
16+
SELECT 1
17+
FROM pg_constraint c
18+
WHERE c.conname = 'workflow_deployment_version_workflow_id_workflow_id_fk'
19+
AND c.conrelid = 'workflow_deployment_version'::regclass
20+
) THEN
21+
ALTER TABLE "workflow_deployment_version"
22+
ADD CONSTRAINT "workflow_deployment_version_workflow_id_workflow_id_fk"
23+
FOREIGN KEY ("workflow_id")
24+
REFERENCES "public"."workflow"("id")
25+
ON DELETE cascade
26+
ON UPDATE no action;
27+
END IF;
28+
END
29+
$$ LANGUAGE plpgsql;
30+
--> statement-breakpoint
31+
CREATE INDEX IF NOT EXISTS "workflow_deployment_version_workflow_id_idx" ON "workflow_deployment_version" USING btree ("workflow_id");--> statement-breakpoint
32+
CREATE UNIQUE INDEX IF NOT EXISTS "workflow_deployment_version_workflow_version_unique" ON "workflow_deployment_version" USING btree ("workflow_id","version");--> statement-breakpoint
33+
CREATE INDEX IF NOT EXISTS "workflow_deployment_version_workflow_active_idx" ON "workflow_deployment_version" USING btree ("workflow_id","is_active");--> statement-breakpoint
34+
CREATE INDEX IF NOT EXISTS "workflow_deployment_version_created_at_idx" ON "workflow_deployment_version" USING btree ("created_at");--> statement-breakpoint
35+
ALTER TABLE "workflow_blocks" DROP COLUMN IF EXISTS "parent_id";--> statement-breakpoint
36+
ALTER TABLE "workflow_blocks" DROP COLUMN IF EXISTS "extent";

0 commit comments

Comments
 (0)