Migrare un sito da Drupal 7 a Drupal 8

Ritratto di Vanni

A novembre 2015 è uscita la prima release stabile di Drupal 8, è da quel giorno, D8 sta evolvendo e maturando molto velocemente, tanto che qualcuno, a 6 mesi di distanza, può cominciare a pensare di voler migrare il proprio sito costruito con Drupal 7. Premetto subito che passare da D7 a D8 è una procedura lunga, noiosa e ricca d'imprevisti, ma fortunatamente la community ci mette a disposizione dei moduli ad hoc, per aiutarci ad effettuare l'upgrade in maniera il più semplice possibile. 

In questa pagina descriverò il procedimento per effettuare il passaggio a Drupal 8, ma questa procedura può cambiare in futuro, in quanto ad oggi, i moduli utilizzati sono ancora in fase di sviluppo e si cercano sempre nuovi metodi per rendere la migrazione il più sicura e meno problematica possibile. Infatti, al momento possiamo migrare: contenuti, utenti, tassonomia e blocchi; e non possiamo migrare: views e contenuti multilingua; ma gli sviluppatori stanno lavorando ad allargare queste possibilità.

Per fare l'upgrade del sito a D8 si possono percorrere 2 strade: 

  • usando un'apposita interfaccia per la migrazione: procedimento descritto in questa pagina, in quanto risulta essere il meno complicato e dedicato agli utenti meno esperti
  • usando Drush: procedimento dedicato ai drupalisti esperti perchè consente di agire nelle varie fasi della migrazione, vedere guida ufficiale

Ho suddiviso questa pagina in 4 sezioni:

Documentazione Ufficiale

Requisiti per effettuare l'upgrade a Drupal 8

  • una nuova installazione (ultima release) di Drupal 8
  • avere i moduli: migrate (presente nel core), Migrate Upgrade e Migrate Plus, installati e abilitati
  • l'accesso al database del sito creato con Drupal 7 e alle sue risorse (se si devono migrare file privati vedere documentazione ufficiale)
  • abilitare eventuali moduli di Drupal 8 che sono utilizzati anche nel sito in D7 (vale solo per i moduli del core, i moduli aggiuntivi non vengono migrati) 

Procedure passo passo di migrazione/upgrade di un sito da Drupal 7 a Drupal 8

E' raccomandabile lavorare con sitiweb in locale, in quanto la procedura di upgrade è lunga e ricca d'imprevisti, quindi è meglio operare sul proprio computer e a lavoro terminato portare tutto online.

Questa è la descrizione di come io ho eseguito la migrazione di questo sito a D8 (fatta a puro scopo didattico, in quanto questo sito è dedicato a D7), possono esserci procedure migliori e sicuramente alcuni passaggi della guida diventeranno obsoleti col tempo in quanto lo sviluppo di moduli e core procede veloce. 

  • attraverso l'uso di Xampp ho installato in locale una nuova versione di Drupal 8 e una copia del sito "Il mio Drupal 7" (la procedure per installare D8 è molto simile a quella per installare D7)
  • e questo è il sito nuovo di zecca
  • nuova installazione di drupal 8 in locale
  • ho installato e abilitato i moduli: Migrate, Migrate Upgrade e Migarte Plus 
  • pagina di abilitazione dei moduli per la migrazione
  • una volta installati, ho lanciato l'Url: mio_sito/upgrade
  • ho cliccato su "continue"
  • e sono arrivato alla pagina in cui si devono inserire le "coordinate" per le risorse che D8 deve migrare
  • si devono inserire i dettagli del database del sito in D7 e la path per la directory dei file (io ho inserito direttamente quella del sito online, ma potevo indirizzarlo al sito che era in locale)
  • interfaccia per inserimento credenziali per migrare database e files
  • la pagina successiva è l'ultima prima di cominciare la procedura di migrazione (e quindi è l'ultima che permette ripensamenti), qui vengono elencate tutte le risorse che D8 riuscirà e non riuscirà a migrare
  • elenco delle risorse che D8 riuscirà a migrare
  • cliccando sul pulsante a fondo pagina, il processo di migrazione inizia
  • process bar durante la migrazione del sito
  • il processo può essere molto lungo e dipende da vari fattori, primo tra tutti la quantità di contenuti del sito (nel mio caso ha impiegato circa 45 minuti)
  • alla fine della migrazione viene visualizzato un messaggio che ti informa di ciò che è andato bene e ciò che è andato male
  • messaggio di report della migrazione del sito
  • cliccando su "Review the detailed upgrade log" possono andare ad esaminare tutti i messaggi di log generati dal processo di migrazione
  • pagina con elencati tutti i log della migrazione
  • e alla fine ho ottenuto questo nuovo sito costruito con Drupal 8​
homepage del nuovo sito in d8 con contenuti migrati

Considerazioni personali e conclusioni

  • Tutto il contenuto dei miei nodi è stato migrato, quindi mi ritrovi con tutti i miei "content type" e i lori "campi"
  • Tutti i miei blocchi sono stati passati e anche le mie immagini
  • Tutti i menu e relativi links sono stati migrati
  • Utenti e tassonomie sono state trasportate
  • Tutto ciò che era stato costruito con moduli aggiuntivi deve essere migrato "manualmente"
  • Le views che avevo creato non sono state migrate quindi si devono ricostruire
  • Tutte le pagine avevano meta tag inseriti e devono essere reinseriti manualmente
  • Molti dei moduli che utilizzavo per in D7 non ci sono in D8, quindi alcune cose non possono essere migrate a meno che non si costruiscano dei moduli custom
  • Il mio vecchio tema non ha una versione per D8 e mi diventa difficile trovare un tema con le stesse regioni, quindi devo o aggiungere nuove regioni o spostare i blocchi
  • Al primo tentativo il processo di migrazione è incappato in un problema col server e ho dovuto apportare alcune modifiche ai file di Xampp
  • Inizialmente avevo alcuni problemi con gli "Alias Url" ed il testo all'interno dei nodi dovuti alla lingua del sito (italiano vs english), ho dovuto fare qualche settaggio

Passare da Drupal 7 a Drupal 8 è un procedimento che richiede molto tempo e lavoro, quindi prima di cominciare si deve avere in mente tutto il piano di azione: quanti moduli hanno la versione per D8, come posso sopperire a quelli che non sono stati riscritti per D8, quale tema scegliere (ha le stesse features e regioni?), eventuali impatti dal punto di vista SEO.

Commenti

Modifica sommario

Domanda, è scomparso anche a te il campo "Modifica sommario" dei nodi importati? Ho provato una marea di volte e mi importa correttamente tutti i nodi eccetto il fatto che poi, quando si va a creare un nodo dello stesso tipo, non è visibile "Modifica sommario".

Ritratto di Vanni

Ciao Kirs, per campo

Ciao Kirs, per campo "Modifica sommario", intendi che il campo body può essere diviso in due parti (sommario e body)?

Se si, ho controllato il mio sito migrato, e sia nei nodi importati che nella creazione di un nuovo nodo usando un tipo di contenuto migrato, quel campo è visibile e funzionante.

Sì esatto, intendo proprio

Sì esatto, intendo proprio quello. Io ho tentato in svariati modi ed ogni volta quel campo non funziona correttamente. Forse sarà perché il sito è nato con Drupal 5 ed a forza di upgrade qualcosa si è alterato, o forse perché i nodi sono più di 500… boh…

Risolto

Sono riuscito a risolvere, è un bug di Drupal 8.
Se si inserisce, o è inserito in Drupal 7, un "Testo di aiuto" nelle impostazioni del campo testo, il teaser non viene mostrato.

Ho visto che stanno sistemando per Drupal 8.2 che dovrebbe uscire in ottobre.

il sito in d7 dopo la migrazione funziona ancora?

Ciao, hai inserito i dati database del sito in D7 e path per la directory dei file del sito D7 online, perchè vuol dire che D8 si "copia" i dati dal db di D7 ma li lascia lì, cioè alla fine dell'operazione hai ancora il tuo sito perfettamente funzionante in d7 e in più quello su D8 ovviamente da mettere a posto?

Grazie, sto facendo delle prove e vorrei essere sicura di non far casini :)

Ritratto di Vanni

Ciao Biggia. Avevo una copia

Ciao Biggia. Avevo una copia del mio sito D7 in locale e girava con Xampp, ho utilizzato il database del sito in locale e per la directory dei file ho utilizzato il sito online. A fine migrazione sia il sito D7 in locale che in produzione erano perfettamente funzionanti. D8 si limita a copiare i dati/file ma non cancella nulla. 

Comunque ti consiglio sempre di avere una copia/backup aggiornata del tuo sito D7 e di sperimentare in locale (che non si sa mai). 

Ok grazie mille, nel

Ok grazie mille, nel frattempo ho fatto molteplici prove con una copia del sito in d7 e ho visto che rimane in effetti perfettamente funzionante, anche se la migrazione su d8 non mi ha ancora mai dato esito positivo...

Ritratto di Vanni

È strano che il processo di

È strano che il processo di migrazione non ti vada a buon fine. Nel mio esperimento ho avuto un solo insuccesso (primo tentativo) e la colpa era di Xampp. Hai provato a guardare i "problemi più comuni" nella guida ufficiale?

In locale non sono riuscita a

In locale non sono riuscita a far funzionare le due versioni di drupal, così ho fatto una copia on-line funzionante del sito, da cui mano a mano sto togliendo blocchi, campi con viste, con blockreference, ecc. per cercare di semplificarlo e rendere più facile la migrazione... il mio obiettivo sarebbe quello di migrare solo contenuti e tassonomia, ma la migrazione si blocca semplicemente dopo aver migrato i 5 vocabolari, senza dare errori nel log... ho guardato i problemi più comuni ma non sembrano riguardarmi, continuerò a "sfrondare" contenuti e tassonomia, che è in effetti molto complessa, se non riesco aspetterò lo sviluppo ulteriore dei moduli per la migrazione :)

 

solo per dire come è andata a

solo per dire come è andata a finire, visto che l'articolo mi è stato molto utile: dopo prove e riprove ho visto che l'importazone si bloccava nei campi personalizzati che avevo aggiunto ai termini della tassonomia (immagini e testi), una volta tolti quelli dalla copia del db l'importazione ha avuto successo, non mi è rimasto che importare poi a mano i campi mancanti nel nuovo db, è stato tutto sommato facile :)

Aggiungi un commento

Filtered HTML

  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Comment

  • Elementi HTML permessi: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Plain text

  • Nessun tag HTML consentito.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Linee e paragrafi vanno a capo automaticamente.
Per tutelare la vostra privacy suggerisco l'uso di un nickname o lasciare anonimo...
CAPTCHA
Questa domanda e' per testare se sei un visitatore persona e non un software che genera spam
7 + 13 =
Risolvi la semplice domanda di matematica e inserisci il risultato. Es. se e' 1 + 3 inserisci 4.