Backfill Everything
Runs a full, one-shot value-backfill pass across every table you select below from the
chosen sync job (defaults to all of them) — not scoped by date, not limited to a
per-invocation row budget. Each table is audited from the very first row ever migrated
through to the most recent. This only updates destination rows that were
already migrated and have since drifted from the source — it never inserts new or missing
rows (a row with no existing mapping is simply never looked at) and it never touches an
id column (anything named id or ending in _id, e.g.
jockey_id/course_id) — repointing FK links is FK Integrity
Repair's job, never this one's.
racecard_meeting, racecard_race, and racecard_runner (greyed out below, even if present in a job's table list) are no longer backfilled from here at all — they now get active FK re-resolution and value backfill exclusively from /RacecardBackfill, which (unlike this page) also auto-copies a missing course/country/feature_race/runner/ jockey/trainer parent row on the fly.
This is the deep, occasional catch-up — after a bug fix, a schema change, or just periodically. It's separate from the ongoing automatic backfill (which now only checks the last 7 days on every sync, see /Sync) and from the date-range Campaign (one table, one date window at a time). Depending on table sizes this can take a long time — the Progress page shows live per-table status and can be left running in the background.
Scheduled Backfill
Runs this same full backfill automatically on a recurring interval for the job and tables chosen below, instead of only ever running it by hand. A scheduled run never overlaps that job's own sync ticks — if the job is actively syncing (or a backfill for it is already in progress) when a run comes due, it's skipped and retried shortly after instead of running alongside it.