Drupal 7 to 8 Migration — poradnik, który dotyczy wyzwań związanych z migracją (z rekomendacjami)
Opublikowany: 2020-02-27Masz na myśli migrację z Drupala 7 do 8? Czy nadal prowadzisz swoją stronę na Drupalu 7 (lub 6)? Najwyższy czas na migrację na Drupala 8!
Dużo pisaliśmy o tym, dlaczego powinieneś migrować do Drupala 8, jeśli nadal korzystasz z Drupala 7 (lub 6). Chociaż jednym z naszych najbardziej ulubionych (i znaczących) powodów migracji do Drupala 8 jest to, że… Drupal 9 nadchodzi! A jeśli chcesz czerpać korzyści z Drupala 9, zalecamy najpierw migrację Drupala 7 do Drupala 8. Możemy argumentować, że powinieneś przejść na Drupala 8 już teraz, ponieważ po pojawieniu się Drupala 9 (czerwiec 2020) i EOL Drupala 7 (listopad 2021) nie ma wystarczająco dużo czasu. Ale możesz twierdzić, że możesz zamiast tego wybrać LTS (długoterminowe wsparcie)! Słusznie. Tyle że oprócz wydawania większych pieniędzy na zaangażowanie dostawcy usług LTS, tracisz także bogate korzyści, jakie ma do zaoferowania Drupal 8. Niektóre rzeczy mogą wydawać się trudne, ale są niezbędne dla lepszej i prostszej przyszłości.
Raz na Drupal 8, nie musisz już „migrować” – wystarczy proste „uaktualnienie” Drupala 8.9 do 9, a następnie 9.9 do 10 i tak dalej. Migracja Drupala 7 do Drupala 8 nie zawsze jest łatwa i prosta; Zgadzam się. Podążanie za procesem pomaga, ale nadal możesz napotkać pewne wyzwania podczas migracji, zwłaszcza jeśli model zawartości Twojej witryny Drupal 7 jest bardzo złożony. Przejdźmy krok po kroku przez migrację z Drupala 7 do Drupala 8 wraz z wyzwaniami, z którymi możesz się zmierzyć. Oraz nasze zalecenia, jak je przezwyciężyć.
Drupal 8 Migrate – założenia i przygotowania
“ Być przygotowanym to połowa zwycięstwa ”, powiedział hiszpański powieściopisarz Miguel De Cervantes. Migracja do Drupala 8 może się skomplikować, ale jeśli poświęciłeś wystarczająco dużo czasu na planowanie migracji, wyzwania Cię nie zaskoczą. Przyjęcie przez Drupala 8 wielu nowoczesnych standardów programistycznych, takich jak Symfony, Twig, PHP 7 itp., doprowadziło do tej kompletnej przebudowy, ale wymaga również potężniejszych, solidniejszych i bardziej elastycznych doświadczeń cyfrowych. Wymienionych jest kilka warunków wstępnych, o których należy pamiętać przed rozpoczęciem migracji Drupal 7 do 8 –
- Zaktualizuj swoją stronę Drupal 7 do najnowszej dostępnej wersji. Pomoże to w czystszym automatycznym aktualizowaniu niektórych modułów, które mają bezpośrednie ścieżki aktualizacji Drupal 8.
- Upewnij się, że masz dostęp do bazy danych i plików serwisu Drupal 7 (publicznych i prywatnych).
- Utwórz kopię zapasową witryny Drupal 7 i użyj tej kopii zapasowej do migracji do Drupala 8. Nie zaleca się migracji działającej, działającej strony internetowej, chociaż sama migracja nie wprowadza żadnych modyfikacji w źródle.
- Pobierz nową instalację Drupala 8 stąd i włącz podstawowe moduły Migrate, które omówiliśmy powyżej. I pamiętaj, MUSI być świeży! Wszelkie wykonane konfiguracje lub utworzone treści zostaną nadpisane podczas aktualizacji Drupala 8.
- Nie ma bezpośredniej ścieżki aktualizacji z Drupala 7 do Drupala 8 (w przeciwieństwie do poprzednich aktualizacji wersji). Zapoznaj się z systemem migracji Drupala 8. Trzy moduły znajdujące się w rdzeniu – Drupal 8 Migrate module, Drupal 8 Migrate Drupal module i Drupal 8 Migrate Drupal UI module.
- Dokonaj wyboru migracji — czy użyjesz Drush (który zapewnia szczegółową kontrolę), czy też skorzystasz z interfejsu użytkownika przeglądarki (łatwiej, ale z mniejszą kontrolą)?
- Poznaj swoje źródło. Elastyczność systemu migracji treści Drupal umożliwia wyodrębnianie i ładowanie treści ze starszych wersji Drupala i różnych innych źródeł, takich jak CSV, XML, JSON, MYSQL itp.
- Aby migracja treści Drupal przebiegała płynnie, przeprowadź dokładny audyt treści, aby zidentyfikować treści, które musisz przenieść. Odrzuć nieużywane i nieistotne treści, aby nie tracić czasu i wysiłku na ich migrację.
Proces migracji do Drupala 7 do 8 (krok po kroku)
Obserwuj i planuj
Płynna migracja treści Drupal wymaga najpierw zidentyfikowania typów treści i struktury treści istniejącej witryny oraz udokumentowania obserwacji. Obejmuje to typy treści, typy pól, bloki, taksonomie itp. Przygotuj plan dotyczący tego, co musisz przenieść, a co scalić, w oparciu o te obserwacje. Przeanalizuj widoki i inne konfiguracje witryn oraz skataloguj je, aby łatwiej było je replikować w Drupal 8.
Utwórz listę kontrolną modułów swojej witryny Drupal 7
Dzięki tej liście kontrolnej powinieneś być w stanie zidentyfikować moduły, których nadal potrzebujesz, lub jeśli istnieje wersja tego modułu dla Drupala 8, lub jeśli moduł został teraz przeniesiony do Drupal 8 Core (jak moduł Media). Nie wszystkie moduły Drupal 7 mogą być automatycznie migrowane do Drupal 8. Niektóre moduły Drupal 7 mogły połączyć swoją funkcjonalność w jeden moduł Drupal 8. Niektóre moduły Drupal 7 mogą podzielić swoje funkcje na dwa lub więcej modułów Drupal 8. Zawsze lepiej jest przeanalizować takie przypadki, aby mieć pewność, że nie doszło do utraty danych!
Zalecenie eksperta – Użyj modułu takiego jak Drupal Migrate UI, aby zidentyfikować moduły Drupal 7 i odpowiadający im moduł Drupal 8 (jeśli jest dostępny lub nie).
Pro Tip - Brak dostępnej wersji modułu dla Drupala 8? Na przykład moduł ImageField w Drupal 7 nie ma odpowiadającego modułu D8. Być może będziemy musieli znaleźć najlepszą odpowiednią alternatywę dostępną do tego w Drupal 8. Oczywiście mamy moduł mediów rdzenia Drupal 8. Jednak będziemy musieli opracować niestandardowe skrypty do migracji danych obrazu. migrować dane obrazu.
Zalecenie eksperta – Jeśli właśnie odziedziczyłeś witrynę D7 i nie masz pojęcia o dostosowaniach dokonanych w modułach LUB Jeśli dokonałeś dostosowań samodzielnie i musisz je znaleźć, zalecamy skorzystanie z Hacked! moduł. Ten moduł przejdzie przez listę modułów dostępnych na stronie oraz zmiany/dostosowania dokonane w każdym module.
Replikuj i buduj
Replikuj typy treści, taksonomie i wszystkie encje, które są wymagane w Twojej instancji D8. Widoki należy budować ręcznie po utworzeniu i zreplikowaniu zawartości.
Zalecenia ekspertów –
- Pliki szablonów (.tpl) w Drupalu 7 należy napisać od nowa przy użyciu plików twig, które są częścią frameworka Symphony 2.
- Upewnij się, że przepisałeś niestandardowe moduły zgodnie ze standardami symfonii.
Implementacja migracji do Drupala z 7 na 8
Nadszedł najbardziej oczekiwany i znaczący krok. Jak wspomniano wcześniej, istnieją dwa sposoby migracji danych z Drupala 7 do Drupala 8 -
- Uruchamianie migracji z Drupal UI
- Przeprowadzanie migracji za pomocą Drush
Ten ostatni jest zalecany, ponieważ jest bardziej wydajny, można go włączyć do skryptów powłoki i ma bardziej przejrzyste komunikaty o błędach.
Metoda interfejsu użytkownika Drupala
Korzystając z modułu Migrate UI Drupal 8, możesz zacząć od odwiedzenia ścieżki /upgrade na stronie Drupal 8. Strona przeglądu aktualizacji Drupal 8 wyświetli listę modułów w witrynie Drupal 7, które mogą i nie mogą być automatycznie migrowane do Drupal 8. W przypadku modułów, które mają swoje funkcje w innym module D8, ale nie są dokładnie takie same (jak moduł AddressField w D7 jest teraz modułem adresu w D8), będziesz musiał zainstalować i włączyć odpowiedni moduł D8 i ponownie uruchomić proces migracji Drupal 7 do 8. Na podstawie katalogu treści i wyodrębnionych danych należy zbudować skrypty migracji, w których mapujesz atrybuty typu treści Drupala 7 z nowo zbudowanymi atrybutami typu treści Drupala 8. Następnie możesz przystąpić do importowania danych z źródło danych.
Metoda Drush
Czy czujesz się komfortowo podczas korzystania z terminala? Jeśli tak, powinieneś wybrać metodę Drush dla migracji Drupal 7 do 8. Zapewnia zestaw poleceń do procesu migracji danych z lepszymi komunikatami o stanie. Zapoznaj się z tym samouczkiem, jeśli szukasz migracji procedur krok po kroku za pomocą poleceń Drush. Nigdy wcześniej nie używałeś Drush? Ten przewodnik pomoże Ci zrozumieć podstawy Drush z listą przydatnych poleceń do migracji.
Możesz teraz napotkać pewne konflikty. Upewnij się, że sprawdziłeś znane problemy w Drupalu. org i jak je naprawić. Po naprawieniu możesz teraz uruchomić proces migracji, który zapewnia ciągłe logi/informacje zwrotne na temat podjętych działań. Na koniec sprawdź logi pod kątem błędów, napraw je i gotowe!
Rekomendacja eksperta – czekaj! Po utworzeniu treści nigdy nie przeocz SEO / wyświetleń strony. Treść musi mieć te same ścieżki URL. Nie zapomnij zająć się migracją aliasów URL, informacji metatagów treści ze starego serwisu Drupal 7.
Testowanie
Bardzo rzadko zdarza się, że podczas migracji z Drupala 7 do Drupala nie napotkasz żadnych problemów. Po zakończeniu migracji absolutnie konieczne jest przeprowadzenie testów regresji świeżo zaimportowanej konfiguracji i zawartości w celu zidentyfikowania wszelkich potencjalnych błędów lub problemów.
Wyzwania i (więcej eksperckich) rekomendacji
- Wiele modułów przesłanych do Drupala 7 ma lepsze wersje w Drupal 8, a niektóre zostały przestarzałe. Na przykład moduł Field Collection, który służy do grupowania pól w Drupalu 7, wkrótce zostanie wycofany. Funkcjonalność tego modułu została dodana do modułu Akapitów i modułu Entity Reference Revision w Drupal 8. Moduł Akapitów Drupal 8 zapewnia ogromną elastyczność edytorom/autorom treści w celu tworzenia bezproblemowych formularzy i struktur. Jeśli musisz przeprowadzić migrację modułu kolekcji pól i zmapować go do modułu Akapit (D8), będziesz musiał napisać niestandardowe wtyczki, aby mapować zawartość między polami kolekcji pól na pola akapitów. Lub jeśli nadal chcesz kontynuować migrację modułu Field Collection nawet w Drupal 8, to mapowanie pól może być obsługiwane przez dostępne wtyczki do migracji Core.
- Czy używasz Paneli do tworzenia swoich stron typu landing page, takich jak Strona główna, Dashboard itp.? Nawet jeśli potrzebujesz tylko umieścić blok na stronie głównej? Kreator układów na ratunek! Layout Builder w Drupalu 8 ułatwia edytorowi treści dostosowanie strony docelowej. Wykorzystajmy jak najlepiej funkcje Drupala 8. Aby przeprowadzić migrację z Panels do Layout buildera, musisz napisać kilka niestandardowych wtyczek do migracji.
- Podczas migracji użytkowników będziemy musieli również zachować hasła, aby użytkownik nie musiał ponownie tworzyć hasła w nowej witrynie. Hasła są treścią zaszyfrowaną. Musisz więc znaleźć algorytm typu hash, który jest używany w witrynie źródłowej. Następny. napisz proces sprawdzania poprawności zmigrowanego hasła z hasłem odświeżonym przy użyciu tego samego algorytmu.
- Uruchamiając migrację Drupal 7 do 8, możesz wyczerpać zasoby systemowe, co może spowodować zatrzymanie migracji. Dzięki znakom wysokiej wody możesz ponownie uruchomić migrację i powinna ona rozpocząć się od miejsca, w którym została przerwana.
- Powszechnie używany moduł funkcji w Drupalu 7 stał się prawie przestarzały po tym, jak zarządzanie konfiguracją przejęło całą funkcjonalność funkcji i więcej w Drupal 8. Chociaż moduł Funkcje jest również dostępny w Drupal 8, zdecydowanie zaleca się wykorzystanie konfiguracji Drupala 8 System zarządzania. Jest nie tylko prostszy w obsłudze, ale także umożliwia łatwe eksportowanie między środowiskami, wykorzystuje formaty plików YAML zamiast PHP – który jest bardziej czytelnym i odpowiednim formatem danych.
- Jeśli masz wielojęzyczną witrynę Drupal 7 (lub 6) możesz skorzystać z modułu Migrate Drupal Multilingual. Chociaż wielojęzyczny moduł Migrate Drupal jest wciąż w fazie eksperymentalnej, jest niezbędnym modułem dla wszystkich wielojęzycznych witryn Drupal.
- Masz problemy z migracją z Drupala 7 do Drupala 8? Istnieje kilka sposobów zgłaszania awarii i uzyskiwania pomocy —
- Kolejka problemów z aktualizacją Drupala 8
- Kolejka problemów z modułem, jeśli znajdziesz błąd lub wyjątek z modułem głównym/wniesionym
- Kanał IRC #drupal-migrate na Freenode
- Kanał #migration na Drupal Slack
- Zatrudnij eksperta ds. Drupala

