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:localapplica le migrazioni al database locale.npm run db:migrate:developmentopera solo sul D1 di sviluppo.npm run db:migrate:productionopera 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
- Congelare lo SHA e ispezionare ogni file pending.
- Dimostrare che l'elenco è esattamente quello autorizzato.
- Applicare le migrazioni in un run separato dal deployment.
- Richiedere risultato terminale e storia migrazioni coerente.
- Eseguire verifiche in sola lettura sugli invarianti interessati.
- 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.