docs: canonical upgrade rollout procedure (migrate 0003, seed, canonicalize dry-run/apply)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
1 changed file +12 −0
modified
docs/DEPLOY.md
+12 −0
@@ -29,6 +29,18 @@ ssh M2M32c 'cd ~/apps/ai-atlas && nohup bash deploy/first-run.sh > ~/ai-atlas-da | ||
| 29 | 29 | curl -sI https://www.ai-atlas.co | head -1 # 6. public check |
| 30 | 30 | ``` |
| 31 | 31 | |
| 32 | +### Canonical upgrade (2026-09-12) — first rollout of migration 0003 | |
| 33 | + | |
| 34 | +The `post_sync` hook runs `aia migrate` (0003 is additive) and `aia seed` (new benchmark variants, licences, org kinds). Right after the | |
| 35 | +deploy, canonicalize the production data once by hand (dry-run first, then apply; both are idempotent and never delete rows): | |
| 36 | + | |
| 37 | +```bash | |
| 38 | +ssh M2M32c 'cd ~/apps/ai-atlas && export PATH=/opt/homebrew/opt/postgresql@17/bin:$PATH AIA_LOG_JSON=0 DATABASE_URL=postgresql+asyncpg://aiatlas:aiatlas@127.0.0.1:5432/aiatlas AIA_DATA_DIR=$HOME/ai-atlas-data && .venv/bin/aia backup && .venv/bin/aia canonicalize | tail -40' | |
| 39 | +ssh M2M32c 'cd ~/apps/ai-atlas && … .venv/bin/aia canonicalize --apply | tail -40 && .venv/bin/aia canonicalize --apply | tail -3' # second pass must report 0 changes | |
| 40 | +``` | |
| 41 | + | |
| 42 | +The scheduler then keeps the data canonical (full pass nightly 03:30, light pass every 6 h — see docs/CANONICALIZATION.md). | |
| 43 | + | |
| 32 | 44 | `mld deploy` re-points `https://www.ai-atlas.co → M2M32c:8320` on BHS64 and runs the public health check. `mld heal` (every 5 min on M1M32) |
| 33 | 45 | restarts anything missing after a power cut. Secrets: `deploy/.admin-token`, `deploy/.llm-key` (git-ignored); rendered manifest in `deploy/rendered/`. |
| 34 | 46 | |
| 35 | 47 | |