La scienza dietro una migrazione di successo da 7 a 9 Drupal (e perché alcuni di loro falliscono)
Pubblicato: 2021-12-15Ricordi quel fantastico sito Web che tutti nella tua azienda amavano (o almeno tolleravano) che sei stato costretto a migrare a un sistema più recente? E la squadra che ti fidavi per farlo forse ha morso più di quanto possano masticare? Quello che una volta poteva essere un sito Web perfettamente funzionante e dall'aspetto perfetto, ora diventa un pasticcio di problemi bizzarri, prestazioni scadenti o, talvolta, un sito quasi inutilizzabile.
Se questo suona familiare e riscontri strani problemi dopo aver aggiornato il tuo sito Drupal 7 (o 6) a Drupal 9 (o 8), leggi questo articolo fino alla fine . Entreremo nei problemi comuni che i proprietari di siti devono affrontare dopo aver aggiornato Drupal 7 (o 6) a Drupal 9 (o 8) e come possono essere risolti. Questo non coprirà tutti i problemi che vediamo quando veniamo per un salvataggio della migrazione, ma dovrebbe almeno portarti a un punto in cui puoi andare a dormire la notte.

Aggiornamento Drupal da 7 a 9 - La sfida fondamentale
La prima domanda che probabilmente ti stai ponendo è: "Perché?" L'aggiornamento da Drupal 7 a Drupal 9 (Drupal 8 è stato tramontato) sembra non essere così difficile dal punto di vista della piattaforma.
Bene, Drupal 8 ha cambiato tutto. Ha avuto una revisione architettonica completa in modo che il CMS potesse essere più sostenibile, pertinente e più facile da imparare a lungo termine. L'adozione di moderne tecnologie e framework come la programmazione orientata agli oggetti, Symfony, Twig, le ultime versioni di PHP e (molto) altro, hanno anche permesso alla comunità di Drupal di crescere esponenzialmente accogliendo una gamma più ampia di competenze per aiutare a costruire Drupal. Ciò significa che ora è più facile trovare un esperto per creare e mantenere il tuo sito web Drupal. La grande notizia è che l'aggiornamento a qualsiasi versione futura di Drupal (come Drupal 8 a Drupal 9) dopo quella migrazione iniziale è estremamente semplice e non richiede una ricostruzione.
Ma torniamo al problema in questione, molte organizzazioni stanno ancora migrando da Drupal 7 a 9 , il che comporta una ricostruzione completa del sito web. La ricostruzione stessa è abbastanza complessa senza mantenere l'attuale struttura dei contenuti che può offrire agli sviluppatori più esperti. E nella maggior parte dei casi, i siti Web più grandi richiedono ancora più attenzione poiché tendono ad avere più moduli personalizzati e personalizzati che non hanno un percorso di aggiornamento diretto. Tutto ciò insieme apre infinite possibilità di errore.
Per i team che non hanno tentato questo tipo di migrazione, il più delle volte il primo errore di migrazione di Drupal da 7 a 9 è la mancanza di preparazione. Il primo e il passo più significativo per una migrazione Drupal di successo consiste nell'effettuare un controllo completo della migrazione per analizzare ogni minimo dettaglio della struttura attuale del sito web . Questo rapporto non solo ti aiuta a valutare le implicazioni della migrazione, ma ti fornirà anche approfondimenti sulle aree di miglioramento. Il passo successivo più importante è decidere se consentire a un partner di sviluppo Drupal specializzato (qualcuno che respira Drupal giorno dopo giorno) di eseguire la migrazione. Proprio come preferiresti che un cardiochirurgo esegua un intervento chirurgico di bypass rispetto a un chirurgo ortopedico; avere un'azienda specializzata incentrata su Drupal per creare il tuo sito Web Drupal porterà a una migrazione di successo.

Drupal comuni da 7 a 9 sfide di migrazione
Una delle fonti di frustrazione più comuni dopo una migrazione da Drupal dal 6/7 all'8/9 è non sapere da dove cominciare quando si affrontano i problemi. Come fai, con o senza abilità di programmazione, a scoprire dove si trovano i veri problemi? Facile: controlla i log degli errori. Lo so, sembra che tu stia aprendo un altro barattolo di worm cercando di capire cosa dicono i registri, ma ti guideremo attraverso quelli comuni di seguito.
Come trovare i miei log degli errori?
|
Analizziamo direttamente alcuni dei problemi più comuni affrontati dai proprietari di siti Drupal dopo una migrazione da Drupal 7 a Drupal 9.
Il sito Web è a malapena attivo / rotto
- Problemi con il server: il tuo server può essere compromesso se non disponi di autorizzazioni sufficienti per accedere al tuo server. Uno sguardo più approfondito ai registri degli errori ti aiuterà a capire da dove ha origine il problema. Se si tratta di un problema con il server, assicurati di disporre di diritti sufficienti per accedere al tuo server. Contatta il tuo provider di hosting per aumentare il limite di memoria se stai riscontrando un problema di mancanza di spazio. Se ciò non aiuta, solleva un ticket con loro menzionando il problema del tuo server.
- Codice personalizzato: se il tuo sito Web Drupal 6/7 era più complesso del previsto, è probabile che invece di valutare il codice personalizzato e mapparlo correttamente prima della migrazione, sia stato eseguito un semplice passaggio e spostamento. Se hai condizioni personalizzate che si attivano quando la tua pagina viene caricata e non trova il codice personalizzato ad essa associato, ti ritroverai con una pagina interrotta. La prima cosa da fare è verificare se hai valutato correttamente il sito Web nel tuo audit di migrazione (se l'hai fatto) per verificare la presenza di moduli e codice personalizzati. Se il problema è dovuto a una condizione personalizzata e il codice manca, avrai bisogno del tuo sviluppatore Drupal per creare l'implementazione del codice personalizzato. Idealmente, il codice personalizzato avrebbe dovuto essere creato prima della migrazione di qualsiasi contenuto.
- Modulo Core/Contrib: a volte puoi riscontrare un problema noto sul tuo modulo core o contribuito che ha già una soluzione/patch. Una piccola ricerca può aiutare a identificare questo. Trova e applica la patch e dovresti essere a posto.
- Versioni/librerie PHP obsolete: il tuo nuovo sito Drupal potrebbe ancora eseguire una versione precedente di PHP o librerie da cui dipende il tuo codice. Assicurati che il tuo sito web implementi l'ultima versione di PHP e altre librerie. Verificare anche se tutti i requisiti di sistema e le configurazioni sono soddisfatti.
Impossibile modificare le pagine (problemi di autorizzazione)
- Errore 500: se non riesci a modificare le pagine perché stai riscontrando un errore interno del server 500, potrebbe essere dovuto a vari motivi (configurazione errata, codice errato, indicizzazione errata, aggregazione, ecc.). Tuttavia, uno dei motivi più comuni è che potrebbe essere dovuto a una mancata corrispondenza tra i formati dei campi o ai campi mancanti. Ad esempio, se il campo della data dal tuo sito Drupal 7 non viene migrato nel formato corretto o il valore non è stato trasformato nel formato Drupal 9, genererà un errore. Un altro esempio è se in Drupal 7 hai utilizzato il campo Immagini ma, in Drupal 9, stai invece utilizzando un campo multimediale. Il modo migliore per risolvere questo problema è correggere lo script di migrazione per archiviare i dati correttamente. Se ci sono solo pochi campi da modificare, puoi anche creare un aggiornamento hook.
- Errore 403: spesso, l'errore 403 è dovuto al trasferimento errato delle autorizzazioni. Controlla se le autorizzazioni sono impostate correttamente. Se stai usando un modulo per gestire i tuoi utenti, controlla se è disponibile in Drupal 9. A volte, potresti avere hook o iscritti a eventi che limitano l'accesso ad alcuni utenti. Verifica queste condizioni e assicurati che siano implementate anche nella tua nuova installazione.
- La pagina delle autorizzazioni non risponde: il tuo sito Drupal potrebbe implementare del codice personalizzato per gestire le autorizzazioni. Se questo codice non è implementato nel nuovo sito Drupal 9, potresti non essere in grado di visualizzare o modificare (o entrambi) la pagina delle autorizzazioni. Occasionalmente vediamo situazioni in cui gli utenti sono stati migrati in blocco senza migrare correttamente i loro ruoli e profili utente. Come pratica standard, prima di migrare le autorizzazioni, lo sviluppatore dovrebbe creare autorizzazioni personalizzate e assegnarle a ruoli da persone/autorizzazioni.
Prestazioni del sito Web miserabili
- Moduli non necessari: i moduli sono gli elementi costitutivi del tuo sito Drupal, quindi ti consigliamo di migrarli anche tu. Ma a volte vediamo moduli Drupal 7 obsoleti e non necessari spostati su Drupal 9 che possono causare ogni tipo di problema. Soprattutto perché possono appesantire il tuo sito. Ecco alcuni motivi per cui non è necessario migrare alcuni dei tuoi moduli:
- Il modulo (o la sua funzionalità) è già stato spostato su Drupal Core. Ad esempio, il modulo con contributo Media è stato spostato al core in Drupal 8.5, eliminando la necessità di utilizzare il modulo con contributo.
- La sua funzionalità è semplice e può essere inserita all'interno di un altro modulo personalizzato. Ad esempio, se un modulo node::postSave viene utilizzato solo per uno o due tipi di contenuto per scegliere dove l'utente deve andare una volta creato il nodo, potrebbe essere invece possibile spostare il codice in un modulo personalizzato.
- I requisiti per il modulo devono essere rivalutati. A volte, un piccolo cambiamento nell'usabilità può migliorare enormemente le prestazioni del sito web. Ad esempio, tutti i siti Web non hanno davvero bisogno di un modulo di moderazione dei contenuti a meno che il team di marketing dei contenuti non sia grande e distribuito. Le funzionalità di base del flusso di lavoro editoriale di Drupal (Bozza, Pubblica) sono sufficientemente buone per la maggior parte dei requisiti aziendali che non richiedono un flusso di lavoro complesso/dettagliato.
- A volte, i sottomoduli vengono installati insieme ai moduli ma vengono usati raramente/mai. Tali sottomoduli dovrebbero essere rimossi.
- Replicare la stessa architettura: sebbene sia più semplice sollevare e spostare e rispolverare le mani da una migrazione, non è quasi mai un buon approccio. Soprattutto se la vecchia architettura (Drupal 6/7) era disordinata e meno robusta. Un cambiamento nella logica/requisiti aziendali potrebbe anche richiedere una ri-architettura completa. Un controllo approfondito del sito ti dirà esattamente quali moduli devono essere conservati e quali possono essere eliminati in sicurezza.
Le integrazioni di terze parti non funzionano più
- Versione API obsoleta: se il tuo sito Web è connesso a diversi strumenti di terze parti come Salesforce, Marketo, Mailchimp, ecc., una migrazione eseguita in modo improprio può influire sul funzionamento di queste integrazioni. Spesso è che l'API che stai chiamando nel modulo di integrazione Drupal è una versione precedente. L'unica soluzione è che l'integrazione deve essere scritta nell'ultima versione dell'API di terze parti.
- Problemi con il modulo di integrazione: dovrai verificare se le API di terze parti vengono chiamate correttamente nel modulo di integrazione. I parametri vengono passati in modo appropriato? Controlla come sono impostati e recuperati. Controllare la coda di emissione per quel modulo di integrazione. Potrebbe essere disponibile una patch che deve essere applicata. È necessario eseguire test adeguati per garantire che l'API sia stata correttamente trasferita su Drupal 9.
Altri problemi comuni e correzioni
- Installazione dei moduli: usa sempre il compositore per installare i moduli. Ciò eviterà errori dovuti a dipendenze non valide/non disponibili.
- Mancata corrispondenza dell'origine della migrazione: indipendentemente dall'origine della migrazione (CSV, database, JSON, XML), assicurati che i campi di origine corrispondano ai campi di destinazione. Se utilizzi CSV come origine, tieni presente l'ordine di importazione: la priorità è importante per la mappatura dei tipi di contenuto.
- Percorsi delle immagini: molte volte, gli utenti aggiungono immagini direttamente all'interno del contenuto di CKEditor. Queste immagini non vanno sempre al percorso designato durante la migrazione perché la loro posizione è generalmente diversa da quella in cui si trovano gli altri file multimediali. Una migrazione meticolosamente pianificata dovrebbe occuparsi di questo problema.
- SEO: una migrazione negligente da 7 a 9 di Drupal può influire sulla SEO del tuo sito web in molti modi. Uno dei problemi più significativi sono i collegamenti interrotti. Assicurati che la struttura dell'URL e la navigazione esistenti siano preservate poiché qualsiasi modifica può portare a tonnellate di collegamenti interrotti. È necessario eseguire un audit SEO completo per assicurarsi che non ci siano ostacoli sulla strada.
- Stile di Drupal 7: spesso emergono problemi di migrazione da Drupal 7 a Drupal 9 (soprattutto problemi di prestazioni) perché gli sviluppatori usano lo stesso stile di codifica di Drupal 7 invece di adattarsi ai cambiamenti introdotti da Drupal 8. Esempi, (a) il modo in cui uccidi la cache delle pagine è molto diversa in Drupal 8. (b) Drupal 8 ha una gestione della configurazione integrata ma spesso non è implementata nel modo giusto o mantenuta bene in ogni ambiente. (c) Ci siamo anche imbattuti in casi in cui il progetto Drupal 8 sta ancora implementando lo stile del codice procedurale.