feat(db/m7-381): scan_runs table for admin scan-status view
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
DROP INDEX IF EXISTS scan_runs_started_at_idx;
|
||||
DROP TABLE IF EXISTS scan_runs;
|
||||
@@ -0,0 +1,20 @@
|
||||
-- M7 #381: track library-scan / MBID-backfill / cover-enrich runs so the
|
||||
-- admin overview can show last-run results + manual trigger state.
|
||||
CREATE TABLE scan_runs (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
started_at timestamptz NOT NULL DEFAULT now(),
|
||||
finished_at timestamptz,
|
||||
-- Per-stage tallies are jsonb so the schema doesn't need to grow when
|
||||
-- a stage gains/loses a counter. Each stage's value matches the Go
|
||||
-- struct emitted by that worker (e.g. library.Stats).
|
||||
library jsonb,
|
||||
mbid_backfill jsonb,
|
||||
cover_enrich jsonb,
|
||||
-- Non-empty when the run as a whole errored (a stage panic, or the
|
||||
-- worker hit a fatal error before writing stage tallies).
|
||||
error_message text
|
||||
);
|
||||
|
||||
-- The status endpoint always reads the latest row; the in-flight guard
|
||||
-- needs to find rows where finished_at IS NULL. Both hit started_at DESC.
|
||||
CREATE INDEX scan_runs_started_at_idx ON scan_runs (started_at DESC);
|
||||
Reference in New Issue
Block a user