2026-06-06 23:51:30 -04:00
|
|
|
-- +goose Up
|
|
|
|
|
-- +goose StatementBegin
|
2026-05-22 20:26:11 -04:00
|
|
|
-- Execution history for completed task runs.
|
|
|
|
|
CREATE TABLE task_executions (
|
|
|
|
|
id BIGSERIAL PRIMARY KEY,
|
|
|
|
|
task_key TEXT NOT NULL,
|
|
|
|
|
started_at TIMESTAMPTZ NOT NULL,
|
|
|
|
|
completed_at TIMESTAMPTZ NOT NULL,
|
|
|
|
|
status TEXT NOT NULL, -- 'completed', 'failed', 'cancelled'
|
|
|
|
|
error_message TEXT,
|
|
|
|
|
result_data JSONB, -- task-specific summary
|
|
|
|
|
duration_ms BIGINT NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE INDEX idx_task_executions_key_completed ON task_executions (task_key, completed_at DESC);
|
|
|
|
|
|
|
|
|
|
-- User-configured trigger overrides.
|
|
|
|
|
CREATE TABLE task_triggers (
|
|
|
|
|
id BIGSERIAL PRIMARY KEY,
|
|
|
|
|
task_key TEXT NOT NULL,
|
|
|
|
|
type TEXT NOT NULL, -- 'interval', 'daily', 'weekly', 'startup'
|
|
|
|
|
interval BIGINT, -- milliseconds, for interval type
|
|
|
|
|
time_of_day TEXT, -- "HH:MM", for daily/weekly
|
|
|
|
|
day_of_week INT, -- 0-6, for weekly
|
|
|
|
|
max_runtime BIGINT, -- milliseconds, optional
|
|
|
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE INDEX idx_task_triggers_key ON task_triggers (task_key);
|
2026-06-06 23:51:30 -04:00
|
|
|
-- +goose StatementEnd
|