Consigli e appunti per la migrazione di un sito Drupal

Consigli e appunti per la migrazione di un sito Drupal

Recentemente mi sono occupato della migrazione di un sito in Drupal partendo da un sito già sviluppato con lo stesso CMS. Quando si ha a che fare con migliaia di nodi, decine di migliaia di commenti e centinaia di utenti bisogna stare un po' attenti, soprattutto se ci sono regole di accesso ai contenuti ben specifiche.

Il setup di partenza era piuttosto instabile: si trattava di un sito sviluppato inizialmente con Drupal 5 e poi migrato a Drupal 6. Nel corso degli anni erano state effettuate scelte strutturali non proprio felici ed applicati numerosi hack pertanto sia la gestione che la manutenzione erano diventate attività sempre più complesse.

La prospettiva di implementare da zero il sistema adottando Drupal 7 è stata scartata quasi subito a causa della mancanza di tutte le funzionalità e dei moduli necessari al buon funzionamento del sito e quindi la scelta è ricaduta nuovamente su Drupal 6. Comunque, grazie alla nuova struttura delle informazioni e l'uso più accorto di codice personalizzato e moduli aggiuntivi, sarà più semplice svolgere una futura migrazione verso il più recente Drupal 7 (o, magari, anche Drupal 8).

Alcuni consigli per gestire la migrazione di un sito in Drupal

Ecco alcuni consigli per quando si deve migrare un sito in Drupal:

  • I campi di testo HTML contengono diversi tag e caratteri che potrebbero causare dei grattacapi durante l'import. In particolare le stringhe vanno trattate senza perdere per strada ritorni a capo, apici, doppie virgolette ecc.
  • Ci si deve ricordare che i formati di input devono corrispondere con i tag HTML usati.
  • Le date di creazione e modifica dovrebbero rimanere invariate, ma in alcune situazioni può capitare che cambino durante il trasferimento. In tal caso si deve trovare un metodo per riportarle correttamente.
  • Anche le relazioni tra i nodi vanno gestite con cura. Se ad esempio sono presenti dei campi di tipo nodereference e la migrazione modifica gli ID dei nodi, bisognerà aggiornare i valori per sincronizzarli con i nuovi identificatori.
  • Allo stesso modo i collegamenti ipertestuali inseriti nei campi di testo potrebbero puntare a nodi o percorsi non più validi. Ecco due esempi:
    1. Link verso nodi con NID modificato: in questa situazione è necessario un po' di ingegno per aggiornare gli URL sostituendo i vecchi NID con quelli nuovi, chiaramente servirà una tabella con le corrispondenze.
    2. Link verso nodi con PATH diverso: anche quando cambiano i percorsi sarà necessario avere a disposizione una tabella che riporti i vecchi percorsi ed i nuovi in modo da aggiornarli correttamente. Una alternativa è quella di usare dei redirect 301 che però consiglio solo in casi veramente estremi.
  • Gli account degli utenti possono essere trasferiti molto semplicemente però la presenza di campi per la profilazione potrebbe complicare un po' la questione. Come per i nodi bisogna prestare particolare attenzione ad eventuali aggiornamenti dell'ID utente e quindi sincronizzarli opportunamente anche con i nodi.
  • Non dimenticarsi dei percorsi dei file (es. immagini). Se nel nuovo sito la struttura delle directory è stata modificata, questo si dovrà riflettere anche nei percorsi dei campi di tipo file e negli URL presenti nei campi di testo.