4 min di lettura
La migrazione che non puoi annullare
Ogni modifica distruttiva allo schema è una decisione presa una volta e pagata più volte. Ecco la checklist che uso prima di eseguirne una.
- databases
- migrations
- operations
Eliminare una colonna è la riga di SQL più economica di cui ti pentirai.
Perché la reversibilità conta più della correttezza
Una migrazione corretta ma non annullabile resta una scommessa, perché la correttezza si giudica rispetto alle assunzioni del momento. La reversibilità si giudica rispetto alla realtà.
La checklist
- Si può esprimere in due deploy invece che uno? Aggiungi la nuova forma, fai il backfill, sposta i lettori e solo allora rimuovi la vecchia.
- Esiste una copia dei dati fuori da questa transazione? Un dump di cinque minuti fa non è una strategia di backup, ma è meglio di niente.
- Chi legge questa colonna a mia insaputa? Di solito: job di analytics e dashboard interne.
- Come saprò che ha funzionato? Scrivi la query di verifica prima della migrazione, non dopo.
Cosa faccio davvero
Tratto ogni DROP o ALTER ... TYPE come un processo di due settimane, non come un deploy. La colonna resta, inutilizzata, finché nulla vi fa riferimento per un intero ciclo di fatturazione. Costa qualche megabyte. Mi ha salvato più di una serata.