54 lines
2.0 KiB
SQL
54 lines
2.0 KiB
SQL
CREATE TABLE IF NOT EXISTS "workflow_runs" (
|
|
"id" text PRIMARY KEY DEFAULT gen_random_uuid()::text NOT NULL,
|
|
"user_id" text NOT NULL REFERENCES "users"("id") ON DELETE cascade,
|
|
"workflow_id" text NOT NULL,
|
|
"workflow_version" text NOT NULL,
|
|
"status" text DEFAULT 'running' NOT NULL,
|
|
"goal" text,
|
|
"input" jsonb,
|
|
"current_step_id" text,
|
|
"progress_percent" integer DEFAULT 0 NOT NULL,
|
|
"qscore_before" jsonb,
|
|
"qscore_after" jsonb,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"updated_at" timestamp with time zone DEFAULT now() NOT NULL,
|
|
"completed_at" timestamp with time zone
|
|
);
|
|
CREATE INDEX IF NOT EXISTS "workflow_runs_user_idx" ON "workflow_runs" ("user_id", "created_at");
|
|
CREATE INDEX IF NOT EXISTS "workflow_runs_workflow_idx" ON "workflow_runs" ("workflow_id");
|
|
|
|
CREATE TABLE IF NOT EXISTS "workflow_run_modules" (
|
|
"id" text PRIMARY KEY DEFAULT gen_random_uuid()::text NOT NULL,
|
|
"run_id" text NOT NULL REFERENCES "workflow_runs"("id") ON DELETE cascade,
|
|
"module_id" text NOT NULL,
|
|
"title" text NOT NULL,
|
|
"status" text DEFAULT 'idle' NOT NULL,
|
|
"service" text,
|
|
"output_summary" text,
|
|
"output" jsonb,
|
|
"error" text,
|
|
"started_at" timestamp with time zone,
|
|
"completed_at" timestamp with time zone
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS "workflow_artifacts" (
|
|
"id" text PRIMARY KEY DEFAULT gen_random_uuid()::text NOT NULL,
|
|
"run_id" text NOT NULL REFERENCES "workflow_runs"("id") ON DELETE cascade,
|
|
"module_id" text,
|
|
"type" text NOT NULL,
|
|
"title" text NOT NULL,
|
|
"repo_path" text,
|
|
"public_url" text,
|
|
"metadata" jsonb,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS "workflow_events" (
|
|
"id" text PRIMARY KEY DEFAULT gen_random_uuid()::text NOT NULL,
|
|
"run_id" text NOT NULL REFERENCES "workflow_runs"("id") ON DELETE cascade,
|
|
"user_id" text NOT NULL REFERENCES "users"("id") ON DELETE cascade,
|
|
"type" text NOT NULL,
|
|
"payload" jsonb,
|
|
"created_at" timestamp with time zone DEFAULT now() NOT NULL
|
|
);
|