Drupal 7 to 8 Migration - Un ghid care abordează provocările legate de migrare (cu recomandări)

Publicat: 2020-02-27

Migrarea Drupal 7 la 8 te gândești? Îți mai rulezi site-ul web pe Drupal 7 (sau 6)? Este timpul să migrați la Drupal 8!

Am scris pe larg despre motivul pentru care ar trebui să migrați la Drupal 8 dacă încă sunteți pe Drupal 7 (sau 6). Deși, unul dintre cele mai preferate (și semnificative) motive pentru a migra la Drupal 8 este că... Drupal 9 vine! Și dacă doriți să vă bucurați de beneficiile Drupal 9, este recomandat să migrați mai întâi Drupal 7 la Drupal 8. Am putea argumenta că ar trebui să treceți la Drupal 8 acum, deoarece nu mai este suficient timp odată ce Drupal 9 este aici (iunie 2020) și EOL-ul Drupal 7 (noiembrie 2021). Dar ai putea pretinde că poți opta pentru un LTS (asistență pe termen lung) în schimb! Destul de corect. Cu excepția faptului că, în afară de a cheltui mai mulți bani în angajarea unui furnizor de servicii LTS, pierdeți și beneficiile bogate pe care Drupal 8 le are de oferit. Unele lucruri pot părea dificile, dar sunt necesare pentru un viitor mai puternic și mai simplu.

Odată accesat Drupal 8, nu mai trebuie să „migrați” – doar un simplu „upgrade” de la Drupal 8.9 la 9, apoi de la 9.9 la 10 și așa mai departe, va fi suficient. O migrare de la Drupal 7 la Drupal 8 nu este întotdeauna ușoară și directă; Sunt de acord. Urmărirea unui proces vă ajută, dar este posibil să vă confruntați cu unele provocări în timpul migrării, mai ales dacă modelul de conținut al site-ului dvs. Drupal 7 este considerabil complex. Haideți să vă conducem printr-o migrare pas cu pas de la Drupal 7 la Drupal 8, cu provocări pe care le-ați putea confrunta. Și recomandările noastre despre cum să le depășim.

Drupal 8 Migrate – Ipoteze și pregătiri

A fi pregătit înseamnă jumătate din victorie ”, a spus romancierul spaniol Miguel De Cervantes. O migrare Drupal 8 poate deveni complicată, dar dacă ați petrecut suficient timp în planificarea migrației, provocările nu vă vor surprinde. Adoptarea de către Drupal 8 a multor standarde moderne de dezvoltare precum Symfony, Twig, PHP 7 etc. a condus la această reconstrucție completă, dar necesită și experiențe digitale mai puternice, robuste și flexibile. Sunt enumerate câteva condiții prealabile pe care ar trebui să le amintiți înainte de a începe migrarea Drupal 7 la 8 –

  • Actualizați site-ul Drupal 7 la cea mai recentă versiune disponibilă. Acest lucru va ajuta la upgrade-uri automate mai curate ale unor module care au căi directe de upgrade Drupal 8.
  • Asigurați-vă că aveți acces la baza de date și fișierele (publice și private) a site-ului web Drupal 7.
  • Creați o copie de rezervă a site-ului web Drupal 7 și utilizați această copie de rezervă pentru migrarea Drupal 8. Nu este recomandat să migrați un site web funcțional, deși migrarea în sine nu aduce modificări sursei.
  • Descărcați o nouă instalare a Drupal 8 de aici și activați modulele de bază Migrate despre care am discutat mai sus. Și amintiți-vă, TREBUIE să fie proaspăt! Orice configurații realizate sau conținut creat vor fi suprascrise atunci când se realizează o actualizare Drupal 8.
  • Nu există o cale de actualizare directă de la Drupal 7 la Drupal 8 (spre deosebire de actualizările versiunii anterioare). Familiarizați-vă cu sistemul de migrare al Drupal 8. Cele trei module care se află în nucleu – modulul Drupal 8 Migrate , modulul Drupal 8 Migrate Drupal și modulul Drupal 8 Migrate Drupal UI .
  • Alegeți-vă migrarea – veți folosi Drush (care vă oferă control granular) sau veți merge cu interfața de utilizator a browserului (mai ușor, dar mai puțin control)?
  • Cunoaște-ți sursa. Flexibilitatea sistemului de migrare a conținutului Drupal permite extragerea și încărcarea conținutului din versiuni mai vechi ale Drupal și din diverse alte surse precum CSV, XML, JSON, MYSQL etc.
  • Pentru o migrare fără probleme a conținutului Drupal, efectuați un audit amănunțit al conținutului pentru a identifica conținutul pe care trebuie să îl migrați. Aruncă conținutul nefolosit și irelevant pentru a evita cheltuirea timpului și efortului în migrarea acestora.

Procesul de migrare Drupal 7 la 8 (pas cu pas)

  • Observați și planificați

O migrare fără probleme a conținutului Drupal necesită mai întâi să identificați tipurile de conținut și structura de conținut a site-ului existent și să documentați observațiile. Acestea includ tipuri de conținut, tipuri de câmpuri, blocuri, taxonomii etc. Pregătiți un plan cu privire la ceea ce trebuie să migrați și ce trebuie îmbinat, pe baza acestor observații. Analizați vizualizările și alte configurații ale site-ului și catalogați-le, astfel încât să fie mai ușor să le replicați în Drupal 8.

  • Creați o listă de verificare a modulelor pe site-ul dvs. web Drupal 7

Cu această listă de verificare ar trebui să puteți identifica modulele de care mai aveți nevoie sau dacă există o versiune Drupal 8 a acelui modul, sau dacă modulul s-a mutat acum la Drupal 8 Core (cum ar fi modulul Media). Nu toate modulele Drupal 7 pot fi migrate automat la Drupal 8. Este posibil ca unele module Drupal 7 să-și fi îmbinat funcționalitatea într-un singur modul Drupal 8. Și unele module Drupal 7 s-ar putea să-și fi separat caracteristicile în două sau mai multe module Drupal 8. Este întotdeauna mai bine să analizezi astfel de cazuri pentru a fi sigur că nu există pierderi de date!

Recomandarea expertului – Utilizați un modul precum interfața de utilizare Drupal Migrate pentru a identifica modulele Drupal 7 și modulul Drupal 8 corespunzător (dacă este disponibil sau nu).

migrarea drupal-7-la-8

Sfat profesional - Nicio versiune de modul nu este disponibilă pentru Drupal 8? De exemplu, modulul ImageField din Drupal 7 nu are un modul D8 corespunzător. S-ar putea să fie nevoie să găsim cea mai potrivită alternativă disponibilă pentru aceasta în Drupal 8. Desigur, avem modulul media Drupal 8 core. Cu toate acestea, va trebui să dezvoltăm scripturi personalizate pentru a migra datele imaginii. migrați datele imaginii.

Recomandarea expertului – Dacă tocmai ați moștenit un site web D7 și nu aveți idee despre personalizările făcute modulelor SAU Dacă ați făcut personalizări singur și trebuie să le găsiți, vă recomandăm să utilizați Hacked! modul. Acest modul va parcurge lista de module disponibile pe site și modificările/personalizările făcute fiecărui modul.

  • Replicați și construiți
    Replicați tipurile de conținut, taxonomiile și toate entitățile care sunt necesare în instanța dvs. D8. Vizualizările trebuie construite manual după ce ați creat și replicat conținutul.

Recomandări experților -

  1. Fișierele șablon (.tpl) din Drupal 7 ar trebui să fie scrise rescrise folosind fișiere twig, care face parte din framework-ul Symphony 2.
  2. Asigurați-vă că rescrieți modulele personalizate care urmează standardele simfonice.
  • Implementarea migrației Drupal 7 la 8

Cel mai așteptat și semnificativ pas a sosit. După cum sa discutat mai devreme, există două moduri de a migra datele Drupal 7 la Drupal 8 -

  1. Rularea unei migrări cu interfața de utilizare Drupal
  2. Rularea unei migrari cu Drush

Acesta din urmă este recomandat deoarece este mai eficient, poate fi încorporat în scripturile shell și are mesaje de eroare mai clare.

Metoda Drupal UI

Folosind modulul Migrate UI Drupal 8, puteți începe prin a vizita calea /upgrade a site-ului web Drupal 8. Pagina de revizuire a upgrade-ului Drupal 8 vă va afișa o listă de module de pe site-ul dvs. Drupal 7 care pot și nu pot fi migrate automat la Drupal 8. Pentru modulele care au funcționalitățile lor într-un alt modul D8, dar nu exact aceleași (cum ar fi modulul AddressField din D7 este acum modul de adresă în D8), va trebui să instalați și să activați modulul D8 corespunzător și să reporniți procesul de migrare Drupal 7 la 8. Pe baza catalogului de conținut și a datelor extrase, aveți nevoie pentru a construi scripturile de migrare în care mapați atributele tipului de conținut ale Drupal 7 cu atributele tipului de conținut nou construite ale Drupal 8. În continuare puteți continua cu importarea datelor dintr-un sursă de date.

Metoda Drush

Vă simțiți confortabil să utilizați terminalul? Dacă da, ar trebui să optați pentru metoda Drush pentru migrarea Drupal 7 la 8. Oferă un set de comenzi pentru procesul de migrare a datelor cu mesaje de stare mai bune. Consultați acest tutorial dacă căutați o migrare a procedurii pas cu pas folosind comenzile Drush. Nu ai folosit niciodată Drush înainte? Acest ghid vă va ajuta să înțelegeți elementele de bază ale Drush cu o listă de comenzi utile pentru migrare.

S-ar putea să te confrunți cu unele conflicte acum. Asigurați-vă că ați verificat problemele cunoscute în Drupal. org și cum să le remediați. Odată remediat, acum puteți rula procesul de migrare care oferă jurnalele/feedback continuu cu privire la acțiunile întreprinse. În cele din urmă, verificați jurnalele pentru orice erori, remediați-le și sunteți gata!

Recomandarea expertului – Așteaptă! Odată ce ați creat conținutul, nu treceți niciodată cu vederea SEO/vizionările de pagină. Avem nevoie ca conținutul să aibă aceleași căi URL. Nu uitați să vă ocupați de migrarea alias-urilor URL, a informațiilor meta-etichetelor conținutului de pe vechiul site Drupal 7.

  • Testare

Există momente foarte rare în care ați întâlni zero probleme în timpul migrării Drupal 7 la Drupal 8. Odată ce migrarea este finalizată, este absolut necesară o testare de regresie a configurației și a conținutului proaspăt importat pentru a identifica eventualele erori sau probleme.

Provocări și (mai multe) recomandări de experți

  • Multe module contribuite la Drupal 7 au versiuni mai bune ale lor în Drupal 8, iar unele au fost depreciate. De exemplu, modulul Field Collection, care este utilizat pentru gruparea câmpurilor în Drupal 7, va fi în curând depreciat. Funcționalitatea acestui modul a fost adăugată la modulul Paragrafe și la modulul Revizuire a referințelor entităților din Drupal 8. Modulul Drupal 8 Paragrafe oferă o flexibilitate imensă editorilor/autorilor de conținut pentru a crea forme și structuri fără întreruperi. Dacă trebuie să migrați modulul Field Collection și să îl mapați la modulul Paragraphs (D8), va trebui să scrieți pluginuri personalizate pentru a mapa conținutul dintre câmpurile Field Collection la câmpurile Paragraph. Sau dacă doriți totuși să continuați migrarea modulului Field Collection chiar și în Drupal 8, această mapare a câmpurilor poate fi gestionată de pluginurile de migrare Core disponibile.
  • Utilizați panouri pentru a vă crea pagini de destinație, cum ar fi Pagina de pornire, Tabloul de bord etc.? Chiar dacă trebuie doar să plasați un bloc în pagina de pornire? Constructor de planuri de salvare! Layout Builder din Drupal 8 facilitează personalizarea unei pagini de destinație pentru un editor de conținut. Să folosim cel mai bine caracteristicile Drupal 8. Pentru a migra de la Panels la Layout builder, va trebui să scrieți câteva pluginuri personalizate de migrare.
  • În timpul migrării utilizatorilor, va trebui să menținem și parolele, astfel încât utilizatorul să nu fie nevoit să recreeze parola pe noul site. Parolele sunt conținut hashing. Deci, trebuie să găsiți algoritmul de tip hash care este utilizat în site-ul sursă. Următorul. scrieți un proces pentru a valida parola migrată cu parola rehașată folosind același algoritm.
  • Când rulați o migrare Drupal 7 la 8, este posibil să vă epuizați resursele de sistem, ceea ce poate duce la oprirea migrării. Datorită marcajelor de ape mari, puteți rula din nou migrația și ar trebui să reia de unde a rămas.
  • Modulul Caracteristici utilizat pe scară largă din Drupal 7 a devenit aproape învechit după ce Managementul configurației a preluat toate funcționalitățile Caracteristici și multe altele din Drupal 8. Deși modulul Caracteristici este disponibil și în Drupal 8, este foarte recomandat să folosiți Configurația lui Drupal 8. Sistem de management. Nu numai că este mai simplu de lucrat, ci este ușor de exportat între medii, ci folosește formate de fișiere YAML în loc de PHP – care este un format de date mai lizibil și mai adecvat.
  • Dacă aveți un site web Drupal 7 (sau 6) multilingv, puteți utiliza modulul Migrare Drupal Multilingual. Deși, modulul multilingv Migrate Drupal este încă într-o etapă experimentală, este un modul obligatoriu pentru toate site-urile Drupal multilingve.
  • Întâmpinați probleme cu migrarea dvs. de la Drupal 7 la Drupal 8? Există mai multe moduri de a raporta eșecurile și de a obține ajutor -

- Coada de probleme de actualizare Drupal 8

- Coada de probleme pentru modul dacă găsiți o eroare sau o excepție cu un modul de bază/contribuit

- Canalul IRC #drupal-migrate pe Freenode

- Canalul de #migrare pe Drupal Slack

- Angajați un expert Drupal