Runbook: migrazione D1 straordinaria
Quando usarlo
Usare questo runbook soltanto quando il manifest contiene una pending
extraordinary. Le migration expand appartengono al release workflow
exact-commit e non usano un comando manuale separato.
Prerequisiti
- una Issue operativa che possiede ambiente, exact SHA, migrazioni, finestra, compatibilità mixed-version, backup/time-travel, verifica e recovery;
- CI verde e manifest immutabile;
- ledger remoto riconciliato come prefisso esatto;
- prova development completata prima di production;
- nessuna operazione concorrente sul database;
- un go corrente di Fra per l'intero piano.
Procedura
- Costruire dalla Issue un piano forward-only completo: expand compatibile, deploy, backfill/contract, verifica e recovery.
- Congelare l'exact commit e confrontare manifest, checksum e ledger.
- Verificare backup/time-travel e condizioni di recupero senza stampare evidenza privata.
- Eseguire soltanto le fasi e le superfici nominate dalla Issue.
- Dopo ogni apply rileggere
d1_migrations; su esito ambiguo non ripetere il comando finché la rilettura non dimostra lo stato canonico. - Verificare gli invarianti e chiudere la finestra soltanto su stato terminale completamente riconciliato.
Condizioni di stop
Fermarsi su ledger estraneo, duplicato o fuori ordine; checksum drift; prima prova remota in production; incompatibilità col vecchio codice; recovery non deterministico; evidenza ambigua; side effect fuori scope. Non usare SQL improvvisato o rollback distruttivo automatico.
Verifiche attese
Il ledger finale è l'esatto prefisso autorizzato, gli invarianti applicativi passano in sola lettura e nessuna fase fuori scope è stata eseguita.
Rollback o recupero
Non riscrivere una migration applicata e non tentare rollback schema automatici. Usare una nuova migration forward correttiva oppure la procedura di recovery espressamente posseduta dalla stessa Issue.
Evidenza da conservare
Conservare soltanto exact SHA, ambiente, file/checksum sicuri, prefisso e delta, esiti apply/verify e recovery readiness. Il piano ordinario continua a produrre una sola evidenza nel workflow summary.