Scert/backend/internal/database/migrations/postgres/0004_task_attempts.sql

21 lines
978 B
SQL

ALTER TABLE tasks ADD COLUMN stage TEXT NOT NULL DEFAULT 'queued';
ALTER TABLE tasks ADD COLUMN operator_id TEXT NOT NULL DEFAULT '';
ALTER TABLE tasks ADD COLUMN certificate_version_id TEXT NOT NULL DEFAULT '';
ALTER TABLE tasks ADD COLUMN idempotency_key TEXT NOT NULL DEFAULT '';
ALTER TABLE tasks ADD COLUMN updated_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP;
CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
CREATE INDEX IF NOT EXISTS idx_tasks_idempotency ON tasks(idempotency_key);
CREATE TABLE IF NOT EXISTS task_attempts (
id TEXT NOT NULL PRIMARY KEY,
task_id TEXT NOT NULL,
attempt_number INTEGER NOT NULL,
stage TEXT NOT NULL,
status TEXT NOT NULL,
message TEXT NOT NULL,
started_at TIMESTAMPTZ NULL,
finished_at TIMESTAMPTZ NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE (task_id, attempt_number)
);
CREATE INDEX IF NOT EXISTS idx_task_attempts_task_id ON task_attempts(task_id);