Spaces:
Sleeping
Sleeping
| CREATE TABLE IF NOT EXISTS "workflow_edge" ( | |
| "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, | |
| "version" text DEFAULT '0.1.0' NOT NULL, | |
| "workflow_id" uuid NOT NULL, | |
| "source" uuid NOT NULL, | |
| "target" uuid NOT NULL, | |
| "ui_config" json DEFAULT '{}'::json, | |
| "created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL | |
| ); | |
| --> statement-breakpoint | |
| CREATE TABLE IF NOT EXISTS "workflow_node" ( | |
| "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, | |
| "version" text DEFAULT '0.1.0' NOT NULL, | |
| "workflow_id" uuid NOT NULL, | |
| "kind" text NOT NULL, | |
| "name" text NOT NULL, | |
| "description" text, | |
| "ui_config" json DEFAULT '{}'::json, | |
| "node_config" json DEFAULT '{}'::json, | |
| "created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| "updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL | |
| ); | |
| --> statement-breakpoint | |
| CREATE TABLE IF NOT EXISTS "workflow" ( | |
| "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, | |
| "version" text DEFAULT '0.1.0' NOT NULL, | |
| "name" text NOT NULL, | |
| "icon" json, | |
| "description" text, | |
| "is_published" boolean DEFAULT false NOT NULL, | |
| "visibility" varchar DEFAULT 'private' NOT NULL, | |
| "user_id" uuid NOT NULL, | |
| "created_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL, | |
| "updated_at" timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL | |
| ); | |
| --> statement-breakpoint | |
| DO $$ BEGIN | |
| ALTER TABLE "workflow_edge" ADD CONSTRAINT "workflow_edge_workflow_id_workflow_id_fk" FOREIGN KEY ("workflow_id") REFERENCES "public"."workflow"("id") ON DELETE cascade ON UPDATE no action; | |
| EXCEPTION | |
| WHEN duplicate_object THEN null; | |
| END $$; | |
| --> statement-breakpoint | |
| DO $$ BEGIN | |
| ALTER TABLE "workflow_edge" ADD CONSTRAINT "workflow_edge_source_workflow_node_id_fk" FOREIGN KEY ("source") REFERENCES "public"."workflow_node"("id") ON DELETE cascade ON UPDATE no action; | |
| EXCEPTION | |
| WHEN duplicate_object THEN null; | |
| END $$; | |
| --> statement-breakpoint | |
| DO $$ BEGIN | |
| ALTER TABLE "workflow_edge" ADD CONSTRAINT "workflow_edge_target_workflow_node_id_fk" FOREIGN KEY ("target") REFERENCES "public"."workflow_node"("id") ON DELETE cascade ON UPDATE no action; | |
| EXCEPTION | |
| WHEN duplicate_object THEN null; | |
| END $$; | |
| --> statement-breakpoint | |
| DO $$ BEGIN | |
| ALTER TABLE "workflow_node" ADD CONSTRAINT "workflow_node_workflow_id_workflow_id_fk" FOREIGN KEY ("workflow_id") REFERENCES "public"."workflow"("id") ON DELETE cascade ON UPDATE no action; | |
| EXCEPTION | |
| WHEN duplicate_object THEN null; | |
| END $$; | |
| --> statement-breakpoint | |
| DO $$ BEGIN | |
| ALTER TABLE "workflow" ADD CONSTRAINT "workflow_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action; | |
| EXCEPTION | |
| WHEN duplicate_object THEN null; | |
| END $$; | |
| --> statement-breakpoint | |
| CREATE INDEX IF NOT EXISTS "workflow_node_kind_idx" ON "workflow_node" USING btree ("kind"); |