Migrations

Lotta Games adoption

Replace Lotta's provisional runner with Qubu while preserving product-owned deployment policy and historical truth.

Adopt the released @qubu/migrate, @qubu/cli, and libSQL migration entrypoint as a hard cutover. Do not add an upstream decoder for Lotta's provisional JSON, FNV artifact digests, journal, or broad unsafe flags.

Before changing downstream state, inspect every environment for a provisional journal or baseline row. Regenerate unreleased migrations in the Qubu artifact format. For an existing database, create one standard baseline only after strict live introspection matches the intended Qubu snapshot. That baseline records a verified starting state; it does not claim that old migrations ran through Qubu.

Keep these concerns in Lotta:

  • Turso credentials and environment selection;
  • Cloudflare deployment waiting and migrate-first/migrate-last prompts;
  • the destructive-deny approval policy and product-specific custom programs;
  • rollout timing and the one-time legacy journal cutover decision.

Replace the private migration and runner modules with thin configuration and CLI/library invocation. Make the release script apply the complete pending repository chain and preserve non-zero failures. Generate fresh local test databases with schema bootstrap; keep connection PRAGMAs in the test harness.

Warning

Keep Drizzle migration SQL and snapshots read-only. Do not import or replay Drizzle history. A verified baseline is the handoff from historical state to Qubu lineage.

The downstream verification set should cover a fresh bootstrap, an already baselined database, a no-op deploy, pending migrations in both deployment timing modes, drift refusal, concurrent invocation, rollback, and explicit recovery.

Combo-matrix release blocker

The main repository currently pins the combos submodule gitlink to 2e2856e5692ef5cbef03a055fa71e5baab8ec10a. Commit d9d2e02 added and verified migration profiles in the main repository without advancing that gitlink, so the orphan-branch adapter × environment matrix is not yet synchronized with the new profile claims. This is an unresolved pinned-SHA issue, not evidence that the matrix has verified the new migration entrypoints.

Do not edit the gitlink or matrix as part of Lotta adoption. Before release, update the combos branch in its own review, run the declared environments and real database round trips, classify every candidate pair, then advance the main repository gitlink to that reviewed commit in a separate change.