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

20 lines
979 B
SQL

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