Vai al contenuto

Migrazioni D1

Le migrazioni D1 sono operazioni forward-only possedute dal repository. Non sono un effetto collaterale del deployment API o Frontend.

Confine operativo

  • npm run db:migrate:local applica le migrazioni al database locale.
  • npm run db:migrate:development opera solo sul D1 di sviluppo.
  • npm run db:migrate:production opera solo sul D1 di produzione.
  • i workflow remoti richiamano i comandi soltanto dopo controllo configurazione, ref main, conferma esatta e GitHub Environment corretto.

Per elencare le migrazioni non applicate:

npx wrangler d1 migrations list DB --env development --remote
npx wrangler d1 migrations list DB --env production --remote

Questi comandi interrogano lo stato remoto e richiedono comunque un Issue operativo in scope: la lettura di produzione può contenere evidenza privata e non deve essere copiata nel portale o nei log pubblici.

Regole

  1. Congelare lo SHA e ispezionare ogni file pending.
  2. Dimostrare che l'elenco è esattamente quello autorizzato.
  3. Applicare le migrazioni in un run separato dal deployment.
  4. Richiedere risultato terminale e storia migrazioni coerente.
  5. Eseguire verifiche in sola lettura sugli invarianti interessati.
  6. Fermarsi senza deployment se l'applicazione è fallita o ambigua.

Rollback dello schema

Il rollback Worker non annulla una migrazione. Una compensazione D1 richiede:

  • un nuovo Issue;
  • una migrazione forward correttiva esplicita;
  • analisi della compatibilità con la versione Worker precedente;
  • autorizzazione separata.

Non eseguire SQL improvvisato, cancellazione di righe o ripristino di backup come parte del rollback applicativo.

Evidenza minima

  • SHA del repository;
  • elenco ordinato delle migrazioni attese;
  • ambiente e binding DB;
  • run terminale;
  • storia migrazioni dopo l'operazione;
  • invarianti verificati;
  • conferma che API e Frontend non sono stati distribuiti nello stesso run.

Usare il runbook migrazione D1.