package database import "context" func (db *DB) migrate() error { _, err := db.Pool.Exec(context.Background(), ` CREATE TABLE IF NOT EXISTS tasks ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), parent_task_id UUID REFERENCES tasks(id), command TEXT NOT NULL, skill TEXT NOT NULL DEFAULT '', repository TEXT NOT NULL, ref TEXT NOT NULL, issue_number INTEGER NOT NULL DEFAULT 0, pr_number INTEGER NOT NULL DEFAULT 0, comment_id BIGINT NOT NULL DEFAULT 0, body TEXT NOT NULL DEFAULT '', author TEXT NOT NULL, extra_tools TEXT[] NOT NULL DEFAULT '{}', status TEXT NOT NULL DEFAULT 'pending', pool_ref TEXT NOT NULL DEFAULT '', job_name TEXT NOT NULL DEFAULT '', result TEXT NOT NULL DEFAULT '', error_message TEXT NOT NULL DEFAULT '', created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), started_at TIMESTAMPTZ, completed_at TIMESTAMPTZ ); CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status); CREATE INDEX IF NOT EXISTS idx_tasks_repository ON tasks(repository); CREATE INDEX IF NOT EXISTS idx_tasks_parent ON tasks(parent_task_id); `) return err }