suna/backend/supabase/migrations/20250708034613_add_steps_to...

33 lines
1.0 KiB
PL/PgSQL

BEGIN;
-- Add steps column to agent_workflows table as flexible JSON
ALTER TABLE agent_workflows ADD COLUMN IF NOT EXISTS steps JSONB DEFAULT NULL;
-- Create index for steps column (GIN index for flexible JSON queries)
CREATE INDEX IF NOT EXISTS idx_agent_workflows_steps ON agent_workflows USING gin(steps);
UPDATE agent_workflows
SET steps = (
SELECT COALESCE(
jsonb_agg(
json_build_object(
'id', ws.id,
'name', ws.name,
'description', ws.description,
'type', ws.type,
'config', ws.config,
'conditions', ws.conditions,
'step_order', ws.step_order
) ORDER BY ws.step_order
),
NULL
)
FROM workflow_steps ws
WHERE ws.workflow_id = agent_workflows.id
)
WHERE steps IS NULL;
-- Add comment to document the flexible nature
COMMENT ON COLUMN agent_workflows.steps IS 'Flexible JSON field for storing workflow steps. Structure can evolve over time without database migrations.';
COMMIT;