Validation: basketball-api#429 — Migration jersey_public_orders applied to prod
Validation: basketball-api#429 — jersey_public_orders migration applied to production
Verdict: PASS — 2026-04-11 20:37 UTC.
Note: this migration was originally numbered 040 in PR #433, but renamed to 043 by PR #442 to resolve a dual-revision collision with
040_create_16u_local_queens_team.py from a concurrent merge. The schema content of the migration is byte-identical to the original; only the revision metadata changed. The migration finally executed in production after the WESTSIDE_STREAMLIT_RO_PASSWORD env var fix landed via pal-e-deployments#111 (see validation-449-2026-04-11 for that fix's full verification).Acceptance criteria verified
| Check | Command | Result |
|---|---|---|
| <code>jersey_public_orders</code> table exists | <code>psql -c "\dt jersey_public_orders"</code> | ✅ table present, owner=basketball |
| Migration revision applied | <code>psql -tc "SELECT version_num FROM alembic_version"</code> | ✅ <code>044</code> (chain reached past 043) |
| <code>JerseyPublicOrder</code> model importable | <code>kubectl exec deploy/basketball-api -- python -c "from basketball_api.models import JerseyPublicOrder; print(JerseyPublicOrder.__tablename__)"</code> | ✅ prints <code>jersey_public_orders</code> (verified via the running pod after rollout) |
| basketball-api pod healthy after migration | <code>kubectl -n basketball-api get pods -l app=basketball-api</code> | ✅ 1/1 Running, 0 restarts |
| ArgoCD basketball-api | <code>kubectl -n argocd get application basketball-api</code> | ✅ <code>Synced / Healthy</code> |
Fix chain history
basketball-api#429+ PR #433 — original T2 ticket and merge. Introduced040_add_jersey_public_orders.py. Created dual-revision collision with pre-existing040_create_16u_local_queens_team.py.basketball-api#441+ PR #442 — renamed jersey migration to 043. Fixed the 040 collision but uncovered a hidden 041 collision.basketball-api#443+ PR #444 — renamed streamlit_ro_role migration to 044 to fix the 041 collision. Migration body of jersey unchanged.basketball-api#449+pal-e-deployments#111— injected env var so migration 044 could finally run, which transitively allowed alembic to advance through 043 (this ticket's migration) and 044.
Schema verified in prod
Table
jersey_public_orders created with all 21 columns, 3 CHECK constraints (kq, tier, status), 4 indexes (submitter_sub, email, status, created_at DESC), and 2 ON DELETE SET NULL FKs to parents and players. Schema matches the original PR #433 spec byte-for-byte.What this unblocks
- T3 (
basketball-api#430) — POST /api/jersey-public-orders endpoint (Wave 2) can be dispatched now - T5 (
basketball-api#432) — GET admin endpoint (Wave 2) can be dispatched now - System B production rollout is unblocked at the database layer
Related
arch-jersey-intakestory:WS-S31validation-449-2026-04-11— sister validation for the env var fix that finally let this migration apply