* feat(metadata): add resilient match queue diagnostics * fix(metadata): harden match queue lifecycle --------- Co-authored-by: Quick104 <31828688+Quick104@users.noreply.github.com>
56 lines
2.3 KiB
SQL
56 lines
2.3 KiB
SQL
-- +goose Up
|
|
-- +goose StatementBegin
|
|
ALTER TABLE movie_match_queue
|
|
ADD COLUMN state text NOT NULL DEFAULT 'pending' CHECK (state IN ('pending', 'parked')),
|
|
ADD COLUMN failure_kind text NOT NULL DEFAULT '',
|
|
ADD COLUMN failure_detail jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
ADD COLUMN deterministic_attempt_count integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN input_fingerprint text NOT NULL DEFAULT '',
|
|
ADD COLUMN matcher_revision integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN lease_token text NOT NULL DEFAULT '',
|
|
ADD COLUMN parked_at timestamptz;
|
|
|
|
ALTER TABLE series_root_match_queue
|
|
ADD COLUMN state text NOT NULL DEFAULT 'pending' CHECK (state IN ('pending', 'parked')),
|
|
ADD COLUMN failure_kind text NOT NULL DEFAULT '',
|
|
ADD COLUMN failure_detail jsonb NOT NULL DEFAULT '{}'::jsonb,
|
|
ADD COLUMN deterministic_attempt_count integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN input_fingerprint text NOT NULL DEFAULT '',
|
|
ADD COLUMN matcher_revision integer NOT NULL DEFAULT 0,
|
|
ADD COLUMN lease_token text NOT NULL DEFAULT '',
|
|
ADD COLUMN parked_at timestamptz;
|
|
|
|
CREATE INDEX idx_movie_match_queue_claimable
|
|
ON movie_match_queue (available_at, last_attempted_at, media_folder_id, media_file_id)
|
|
WHERE state = 'pending';
|
|
CREATE INDEX idx_series_root_match_queue_claimable
|
|
ON series_root_match_queue (available_at, last_attempted_at, media_folder_id, observed_root_path)
|
|
WHERE state = 'pending';
|
|
-- +goose StatementEnd
|
|
|
|
-- +goose Down
|
|
-- +goose StatementBegin
|
|
DROP INDEX IF EXISTS idx_series_root_match_queue_claimable;
|
|
DROP INDEX IF EXISTS idx_movie_match_queue_claimable;
|
|
|
|
ALTER TABLE series_root_match_queue
|
|
DROP COLUMN IF EXISTS parked_at,
|
|
DROP COLUMN IF EXISTS lease_token,
|
|
DROP COLUMN IF EXISTS matcher_revision,
|
|
DROP COLUMN IF EXISTS input_fingerprint,
|
|
DROP COLUMN IF EXISTS deterministic_attempt_count,
|
|
DROP COLUMN IF EXISTS failure_detail,
|
|
DROP COLUMN IF EXISTS failure_kind,
|
|
DROP COLUMN IF EXISTS state;
|
|
|
|
ALTER TABLE movie_match_queue
|
|
DROP COLUMN IF EXISTS parked_at,
|
|
DROP COLUMN IF EXISTS lease_token,
|
|
DROP COLUMN IF EXISTS matcher_revision,
|
|
DROP COLUMN IF EXISTS input_fingerprint,
|
|
DROP COLUMN IF EXISTS deterministic_attempt_count,
|
|
DROP COLUMN IF EXISTS failure_detail,
|
|
DROP COLUMN IF EXISTS failure_kind,
|
|
DROP COLUMN IF EXISTS state;
|
|
-- +goose StatementEnd
|