mirror of
https://github.com/Xevion/banner.git
synced 2026-01-31 02:23:34 -06:00
32 lines
997 B
SQL
32 lines
997 B
SQL
-- Scrape job results log: one row per completed (or failed) job for effectiveness tracking.
|
|
CREATE TABLE scrape_job_results (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
target_type target_type NOT NULL,
|
|
payload JSONB NOT NULL,
|
|
priority scrape_priority NOT NULL,
|
|
|
|
-- Timing
|
|
queued_at TIMESTAMPTZ NOT NULL,
|
|
started_at TIMESTAMPTZ NOT NULL,
|
|
completed_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
duration_ms INT NOT NULL,
|
|
|
|
-- Outcome
|
|
success BOOLEAN NOT NULL,
|
|
error_message TEXT,
|
|
retry_count INT NOT NULL DEFAULT 0,
|
|
|
|
-- Effectiveness (NULL when success = false)
|
|
courses_fetched INT,
|
|
courses_changed INT,
|
|
courses_unchanged INT,
|
|
audits_generated INT,
|
|
metrics_generated INT
|
|
);
|
|
|
|
CREATE INDEX idx_scrape_job_results_target_time
|
|
ON scrape_job_results (target_type, completed_at);
|
|
|
|
CREATE INDEX idx_scrape_job_results_completed
|
|
ON scrape_job_results (completed_at);
|