Summary
Backfill legacy player identity, Discord linkage, tracker links, and platform accounts into Sprocket-owned models.
Why
Even after write parity exists, historical player/account state must be present in Sprocket before legacy reads can be removed.
Source data
mledb.player
mledb.player_account
mledb_bridge.player_to_player
- any existing Sprocket user/member/player linkage tables
Scope
- Build an idempotent backfill for historical player/account records.
- Preserve needed crosswalk information for cutover and auditability.
- Define conflict handling for duplicate platform IDs, missing Discord links, or ambiguous mappings.
Acceptance criteria
- Historical player/account state is materialized in Sprocket.
- The backfill is safe to rerun.
- Conflict cases are captured and reported.
- After backfill, account and player lookups no longer require legacy tables for migrated users.
Summary
Backfill legacy player identity, Discord linkage, tracker links, and platform accounts into Sprocket-owned models.
Why
Even after write parity exists, historical player/account state must be present in Sprocket before legacy reads can be removed.
Source data
mledb.playermledb.player_accountmledb_bridge.player_to_playerScope
Acceptance criteria