Come persona che si è occupata regolarmente dell'aggiornamento del database di produzione per i clienti per i nostri aggiornamenti del software, vi dico che il modo migliore per ridurre al minimo gli errori è effettuare gli aggiornamenti nel modo più semplice possibile.
Se è possibile eseguire una modifica a tutti i record piuttosto che a record specifici, è preferibile.
In altre parole, se ti viene fornito un elenco di ID di record che richiedono il loro stato modificato, dovresti chiederti perché l'aggiornamento viene eseguito nel contesto del programma. Potrebbe essere quello dei 10 record che devi aggiornare, la tabella ha solo 10 elementi. Pertanto dovresti chiederti se concettualmente tutto quello che stai facendo è aggiornare lo stato di tutti i record.
Se è possibile inserire, è preferibile.
L'atto di aggiungere un record è autonomo. Con questo intendo dire che c'è solo un effetto collaterale dell'aggiunta di un record, e cioè l'esistenza di un record che non esisteva prima. Pertanto, a meno che non si stia aggiungendo un record che non dovrebbe essere presente, non dovrebbero esserci problemi.
Se è possibile evitare la cancellazione, è preferibile.
Se si esegue una cancellazione, si rimuovono i dati che altrimenti sarebbero irrecuperabili senza un backup. Se possibile, prova a organizzare i dati in modo tale da poter disabilitare i record modificandone lo stato anziché eliminarli fisicamente. L'eccesso di dati può essere inserito in una partizione o può essere rimosso completamente in un secondo momento, una volta che si è sicuri che non ci siano problemi.
Avere una politica di aggiornamento coerente.
Se è necessario aggiornare un record, può succedere una delle seguenti cose:
- Il tuo record non esiste.
- Il tuo record esiste ma è già stato modificato.
- Il tuo record esiste e richiede la modifica.
È necessario disporre di una politica per determinare il corso dell'azione qualora qualcosa non dovesse andare come previsto. Per semplicità, dovresti essere coerente su tutta la linea e applicare questa politica in qualsiasi situazione di questo tipo, non solo per tabelle specifiche. Ciò semplifica il recupero dei dati in un secondo momento. In generale, la mia politica è quella di scrivere lo script in modo da poterlo rieseguire in un secondo momento. Se lo script dovesse fallire, è bello sapere che è possibile apportare le opportune modifiche e rieseguire, tuttavia si è liberi di scegliere la propria politica più adatta a voi.
I backup
Questo non ti scusa affatto dall'eseguire un backup prima di eseguire qualsiasi aggiornamento in un ambiente di produzione! Sebbene anche con un backup, ritengo che non sia necessario utilizzare il backup. Perdita di dati non possono essere una possibilità, anche nel caso peggiore scenario.
Conclusione
Non sarai sempre in grado di farlo a modo tuo. Lo schema della tabella non sarà probabilmente determinato da te, pertanto significa che i tipi di aggiornamenti che puoi aspettarti di eseguire saranno sia complicati che rischiosi. Tuttavia, se hai qualcosa da dire in merito, aiuta a tenere a mente questi punti mentre eseguono gli aggiornamenti in modo semplice e senza rischi significativi.
In bocca al lupo!