Se i dati che si prevede di migrare sono attualmente errati, è necessario correggerli indipendentemente dal fatto che si esegua o meno una migrazione. Dati errati = dati inutili.
Le migrazioni sono rischiose, è vero. Ma lo è anche ogni grande progetto IT. Esistono modi per mitigare il rischio e dovrebbero certamente essere pianificati in anticipo in una migrazione.
Innanzitutto, dovresti sempre avere un modo per tornare al sistema come è adesso. Le seconde migrazioni devono essere eseguite su server di test impostati solo per la migrazione. È una follia fare una migrazione senza la possibilità di testarla prima. In terzo luogo, tutto il codice per la migrazione dovrebbe essere nel controllo del codice sorgente.
In quarto luogo, sono necessari requisiti e piani di test prima di iniziare la migrazione. Devi sapere che se hai avuto 1.293.687 record nel vecchio sistema, che hai lo stesso nel nuovo o sai dove sono andati (forse a una tabella delle eccezioni). Se si sta normalizzando uno schema denormalizzato, è necessario calcolare il numero di record con cui si dovrebbe finire prima di iniziare e quindi verificarlo. È necessaria la documentazione che specifica quali sono i mapping da un sistema all'altro. Ciò aiuterà i tuoi addetti al controllo qualità a verificare che i dati siano andati nel posto giusto.
È necessario determinare come gestire i dati errati correnti. Cosa può essere ripulito, cosa potrebbe aver bisogno di un valore in un campo obbligatorio che dice 'Sconosciuto', cosa dovrebbe essere gettato in una tabella delle eccezioni, cosa ha bisogno di un intervento manuale da parte di un gruppo di utenti (decidere se queste due persone sono davvero un dup o ci sono due medici in quella pratica con lo stesso nome per esempio e se si tratta di un dup di quali dati scegliere quando i due record differiscono, ecc.).
La chiave per una migrazione di successo è la pianificazione. Ho scoperto che la pianificazione (che comprende la scrittura dei casi di test e dei test unitari) di solito richiede più tempo rispetto allo sviluppo effettivo.
La chiave successiva per una corretta migrazione dei dati è il QA. Questo non è un progetto da lanciare al team QA il giorno prima del lancio. Questo non è un progetto da avviare quando il QA dice che c'è un problema.
Un'altra chiave per una corretta migrazione è distribuire la maggior parte dei dati e testarli mentre il sistema originale è ancora in esecuzione. Se si spostano molti record, ciò potrebbe richiedere molto tempo e potrebbero verificarsi nuove modifiche. Pertanto, anche il processo deve essere in grado di eseguire il pull delle modifiche ai dati dopo l'avvio della migrazione. SQL Server, ad esempio, ha qualcosa chiamato Change Data Capture che può aiutare in questo. È possibile eseguire un backup del sistema originale e attivare contemporaneamente l'acquisizione dei dati di modifica. Quindi è possibile resotre il backup sul server di migrazione, testare la migrazione, ottenere la maggior parte dei dati caricati e quindi caricare solo i record che sono stati modificati. Quando si esegue la migrazione dei record finali, disattivare il sistema di origine fino al completamento della migrazione. Questo è uno dei motivi per migrare la maggior parte dei record in anticipo, quindi l'applicazione è inattiva nel minor tempo possibile. Scegli bene il tuo tempo di migrazione, non chiudere il sistema di gestione stipendi nel giorno in cui dovrebbe elaborare la gestione stipendi o inviare W2. E farlo durante le ore di scarso utilizzo. Se hai più client, potresti considerare di migrarne uno prima e assicurarti che tutto vada bene prima di fare gli altri. È molto più semplice ripristinare i dati di un cliente rispetto a 10000 in caso di problemi. Ma pianifica attentamente se lo fai. s dati di 10000 in caso di problemi. Ma pianifica attentamente se lo fai. s dati di 10000 in caso di problemi. Ma pianifica attentamente se lo fai.
Se la migrazione prevede una nuova interfaccia utente, indurre gli utenti effettivi a utilizzarla come parte del test di migrazione. Quindi formare gli altri utenti prima di andare in diretta (ma meno di una settimana prima di andare in diretta o se ne dimenticheranno). Gli utenti coinvolti nei test aiutano a progettare la formazione, sanno quali domande avevano e cosa le persone devono sapere in quale ordine. Ottieni il loro input, rendendo obbligatorio un campo perché pensi che dovrebbe essere non utile se gli utenti di solito non dispongono di tali dati quando inseriscono i record. Metteranno semplicemente spazzatura nel campo appena richiesto perché non possono ottenere i dati in altro modo.
Guarda cosa c'è che non va nei dati attuali, puoi aggiungere chiavi esterne, vincoli, trigger, regole di business nell'applicazione, valori predefiniti, ecc. Al fine di evitare che ciò sia negativo in futuro? Quando si puliscono i dati errati, è necessario anche creare un modo per evitare che quei dati erroneamente simili entrino in futuro. Analizzare il motivo per cui i dati errati sono stati assegnati e correggere il design dei fori.