Una migrazione di dati legacy che si considera una semplice operazione di copia — leggere le vecchie righe, scriverne di nuove — sembrerà sempre completata prima di esserlo davvero. La migrazione di Omnitech CRM da una lunga installazione legacy di Perfex CRM è stata costruita su una premessa diversa: migrare dati legacy è un problema di riconciliazione, e il compito della migrazione è dichiarare con chiarezza cosa non è riuscita a risolvere, non solo cosa ha spostato.
01Come leggere il lavoro
Perché uno script di migrazione non può limitarsi a copiare righe
Gli identificatori, le relazioni e le regole di accesso di un sistema legacy raramente si mappano in modo pulito su un nuovo schema costruito con presupposti diversi. Copiare le righe alla lettera costringe il nuovo schema a ereditare le incoerenze del vecchio sistema, oppure scarta silenziosamente i record che non si adattano — e uno scarto silenzioso durante una migrazione CRM può significare un record cliente perduto o un ticket di supporto senza proprietario. Riconciliazione significa che la migrazione deve confrontare attivamente gli identificatori legacy con il nuovo schema e decidere, record per record, se tale corrispondenza sia sicura da effettuare automaticamente.
02Come leggere il lavoro
Transazionale e idempotente, di proposito
I migratori di Omnitech CRM sono transazionali e idempotenti: un fallimento a metà processo non lascia il database di destinazione parzialmente migrato, e lo stesso passaggio di migrazione può essere rieseguito in modo sicuro senza duplicare i record già migrati. Ciò rispecchia la stessa disciplina di idempotenza utilizzata più in generale nella progettazione di API affidabili — la gestione delle transazioni di database di Laravel è il meccanismo concreto utilizzato qui per rendere atomico un passaggio di migrazione multi-fase (citato di seguito).
03Come leggere il lavoro
Segnalare ciò che richiede una decisione umana
La migrazione segnala esplicitamente i record che non può riconciliare con sicurezza, anziché procedere per tentativi e andare avanti. Quel report è il vero deliverable di una migrazione basata sulla riconciliazione: trasforma un numero imprecisato di problemi di dati silenziosi in un elenco noto e verificabile. La preservazione di tutti e otto i ruoli legacy dall'installazione uscente di Perfex CRM ha seguito lo stesso principio — le definizioni dei ruoli sono state riconciliate con il nuovo sistema di permessi anziché scartate e ricostruite, così le regole di accesso esistenti del personale sono state mantenute anziché azzerate silenziosamente.
04Come leggere il lavoro
A cosa si generalizza questo principio
Una migrazione legacy è completata quando può dichiarare con precisione cosa ha migrato, cosa non è riuscita a risolvere automaticamente e cosa richiede una decisione umana — non quando i conteggi delle righe coincidono. Questo standard si applica indipendentemente dal fatto che il sistema legacy sia un CRM, una piattaforma e-commerce o un decennio di fogli di calcolo: è il report di riconciliazione, non uno script di importazione più grande, a prevenire realmente la perdita silenziosa di dati.