Die Wissenschaft hinter einer erfolgreichen Migration von Drupal 7 auf 9 (und warum einige von ihnen scheitern)

Veröffentlicht: 2021-12-15

Erinnern Sie sich, dass jeder in Ihrem Unternehmen die großartige Website liebte (oder zumindest tolerierte), dass Sie gezwungen waren, auf ein neueres System zu migrieren? Und das Team, dem Sie dies anvertraut haben, hat vielleicht mehr abgebissen, als sie kauen können? Was einst eine perfekt aussehende und funktionale Website war, wird jetzt zu einem Durcheinander aus bizarren Problemen, schlechter Leistung oder manchmal einer fast unbrauchbaren Website.

Wenn Ihnen das bekannt vorkommt und Sie auf seltsame Probleme stoßen, nachdem Sie Ihre Drupal 7 (oder 6)-Site auf Drupal 9 (oder 8) aktualisiert haben, lesen Sie bitte diesen Artikel bis zum Ende . Wir werden uns mit den allgemeinen Problemen befassen, mit denen Websitebesitzer konfrontiert sind, nachdem sie Drupal 7 (oder 6) auf Drupal 9 (oder 8) aktualisiert haben, und wie sie gelöst werden können. Dies wird nicht alle Probleme abdecken, die wir sehen, wenn wir zu einer Migrationsrettung kommen, aber sollte Sie zumindest an einen Punkt bringen, an dem Sie nachts schlafen können.

Drupal 7 bis Drupal 9

Upgrade von Drupal 7 auf 9 - Die grundlegende Herausforderung

Die erste Frage, die Sie sich wahrscheinlich stellen, lautet: „Warum?“ Ein Upgrade von Drupal 7 auf Drupal 9 (Drupal 8 wurde jetzt eingestellt) scheint aus Plattformsicht nicht so schwer zu sein.

Nun, Drupal 8 hat alles verändert. Es wurde architektonisch komplett überarbeitet, damit das CMS langfristig nachhaltiger, relevanter und einfacher zu handhaben ist. Die Übernahme moderner Technologien und Frameworks wie objektorientierte Programmierung, Symfony, Twig, die neuesten PHP-Versionen und (so viel) mehr haben es der Drupal-Community auch ermöglicht, exponentiell zu wachsen, indem sie ein breiteres Spektrum an Fähigkeiten unterbringen, um Drupal aufzubauen. Das bedeutet, dass es jetzt einfacher ist, einen Experten für den Aufbau und die Wartung Ihrer Drupal-Website zu finden. Die gute Nachricht ist, dass ein Upgrade auf alle zukünftigen Versionen von Drupal (wie Drupal 8 auf Drupal 9) nach dieser anfänglichen Migration extrem einfach ist und keinen Neuaufbau erfordert.

Aber zurück zum eigentlichen Problem: Viele Unternehmen migrieren immer noch von Drupal 7 auf 9 , was einen kompletten Neuaufbau der Website erfordert. Der Neuaufbau selbst ist ohne Beibehaltung der aktuellen Inhaltsstruktur komplex genug, dass er den erfahrensten Entwicklern Anfälle bereiten kann. Und in den meisten Fällen benötigen größere Websites noch mehr Aufmerksamkeit, da sie dazu neigen, mehrere beigetragene und benutzerdefinierte Module zu haben, die keinen direkten Upgrade-Pfad haben. All das zusammen eröffnet unendliche Möglichkeiten für Fehler.

Für Teams, die diese Art der Migration noch nicht versucht haben, ist der erste Fehler bei der Migration von Drupal 7 auf 9 meistens mangelnde Vorbereitung. Der erste und wichtigste Schritt für eine erfolgreiche Drupal-Migration ist die Durchführung eines gründlichen Migrations-Audits, um jedes noch so kleine Detail der aktuellen Website-Struktur zu analysieren . Dieser Bericht hilft Ihnen nicht nur bei der Bewertung der Auswirkungen der Migration, sondern gibt Ihnen auch Einblicke in verbesserungswürdige Bereiche. Der nächste wichtige Schritt ist die Entscheidung, ob ein spezialisierter Drupal-Entwicklungspartner (jemand, der Drupal Tag für Tag einatmet) die Migration durchführen soll. So wie Sie es vorziehen würden, dass ein Herzchirurg eine Bypass-Operation einem Orthopäden durchführt; Ein auf Drupal spezialisiertes Unternehmen für die Erstellung Ihrer Drupal-Website zu haben, wird zu einer erfolgreichen Migration führen.

Migrationsaudit

Häufige Herausforderungen bei der Migration von Drupal 7 auf 9

Eine der häufigsten Ursachen für Frustration nach einer Migration von Drupal 6/7 auf 8/9 ist, nicht zu wissen, wo man bei Problemen anfangen soll. Wie finden Sie mit oder ohne Programmierkenntnisse heraus, wo die wahren Probleme liegen? Einfach - überprüfen Sie Ihre Fehlerprotokolle. Ich weiß, es hört sich so an, als würden Sie eine weitere Dose Würmer öffnen, um zu verstehen, was die Protokolle sagen, aber wir werden Sie unten durch die häufigsten führen.

Wie finde ich meine Fehlerprotokolle?

  1. Stellen Sie sicher, dass Sie das dblog-Modul auf Ihrer Seite Admin -> Module aktiviert haben. Dies ist ein Kernmodul.
  2. Gehen Sie zu Admin -> Berichte
  3. Klicken Sie auf Datenbankprotokolle. Sie sollten alle Ihre Fehlerprotokolle hier sehen.

Lassen Sie uns direkt auf einige der häufigsten Probleme eingehen, mit denen Besitzer von Drupal-Websites nach einer Migration von Drupal 7 zu Drupal 9 konfrontiert sind.

Die Website ist kaum aktiv / kaputt

  1. Serverprobleme: Ihr Server kann kompromittiert werden, wenn Sie nicht über ausreichende Berechtigungen für den Zugriff auf Ihren Server verfügen. Ein genauerer Blick in die Fehlerprotokolle hilft Ihnen zu verstehen, woher das Problem stammt. Wenn es sich um ein Serverproblem handelt, stellen Sie sicher, dass Sie über ausreichende Rechte verfügen, um auf Ihren Server zuzugreifen. Wenden Sie sich an Ihren Hosting-Anbieter, um Ihr Speicherlimit zu erhöhen, wenn Sie auf Speicherplatzmangel stoßen. Wenn das nicht hilft, erstellen Sie dort ein Ticket und erwähnen Sie Ihr Serverproblem.
  2. Benutzerdefinierter Code: Wenn Ihre Drupal 6/7-Website komplexer war als erwartet, besteht die Möglichkeit, dass anstelle einer Prüfung auf benutzerdefinierten Code und dessen ordnungsgemäßer Zuordnung vor der Migration ein einfaches Lift-and-Shift durchgeführt wurde. Wenn Sie benutzerdefinierte Bedingungen haben, die beim Laden Ihrer Seite ausgelöst werden und der damit verbundene benutzerdefinierte Code nicht gefunden wird, erhalten Sie am Ende eine fehlerhafte Seite. Als erstes müssen Sie überprüfen, ob Sie die Website in Ihrem Migrationsaudit (falls vorhanden) richtig bewertet haben, um nach benutzerdefinierten Modulen und Code zu suchen. Wenn das Problem auf eine benutzerdefinierte Bedingung zurückzuführen ist und der Code fehlt, benötigen Sie Ihren Drupal-Entwickler, um die Implementierung des benutzerdefinierten Codes zu erstellen. Idealerweise sollte der benutzerdefinierte Code erstellt worden sein, bevor Inhalte migriert wurden.
  3. Core/Contrib-Modul: Manchmal können Sie auf ein bekanntes Problem in Ihrem Core- oder Contributed-Modul stoßen, für das bereits eine Lösung/ein Patch vorhanden ist. Ein wenig Recherche kann helfen, dies zu identifizieren. Suchen Sie den Patch und wenden Sie ihn an, und Sie sollten loslegen können.
  4. Veraltete PHP-Version/-Bibliotheken: Auf Ihrer neuen Drupal-Site wird möglicherweise noch eine ältere Version von PHP oder Bibliotheken ausgeführt, von denen Ihr Code abhängt. Stellen Sie sicher, dass Ihre Website die neueste Version von PHP und anderen Bibliotheken implementiert. Überprüfen Sie auch, ob alle Systemanforderungen und Konfigurationen erfüllt sind.

Seiten können nicht bearbeitet werden (Berechtigungsprobleme)

  1. 500-Fehler: Wenn Sie Seiten nicht bearbeiten können, weil ein interner 500-Serverfehler auftritt, kann dies verschiedene Gründe haben (Fehlkonfiguration, fehlerhafter Code, falsche Indizierung, Aggregation usw.). Einer der häufigsten Gründe ist jedoch, dass es an einer Nichtübereinstimmung zwischen den Feldformaten oder fehlenden Feldern liegen könnte. Wenn beispielsweise Ihr Datumsfeld von Ihrer Drupal 7-Site nicht in das richtige Format migriert oder der Wert nicht in das Drupal 9-Format umgewandelt wurde, wird ein Fehler ausgegeben. Ein weiteres Beispiel ist, wenn Sie in Drupal 7 das Feld Bilder verwendet haben, in Drupal 9 jedoch stattdessen ein Medienfeld verwenden. Der beste Weg, dies zu beheben, besteht darin, das Migrationsskript so zu korrigieren, dass die Daten ordnungsgemäß gespeichert werden. Wenn nur wenige Felder zu bearbeiten sind, können Sie auch ein Hook-Update erstellen.
  2. 403-Fehler: Häufig liegt der 403-Fehler an einer fehlerhaften Übertragung von Berechtigungen. Überprüfen Sie, ob die Berechtigungen korrekt eingerichtet sind. Wenn Sie ein Modul zur Verwaltung Ihrer Benutzer verwenden, überprüfen Sie, ob es in Drupal 9 verfügbar ist. Manchmal haben Sie möglicherweise Hooks oder Ereignisabonnenten, die den Zugriff auf einige Benutzer beschränken. Überprüfen Sie diese Bedingungen und stellen Sie sicher, dass sie auch in Ihrer neuen Installation implementiert sind.
  3. Die Seite "Berechtigungen" reagiert nicht: Ihre Drupal-Site implementiert möglicherweise einen benutzerdefinierten Code zur Handhabung von Berechtigungen. Wenn dieser Code nicht auf der neuen Drupal 9-Site implementiert ist, können Sie die Berechtigungsseite möglicherweise nicht anzeigen oder bearbeiten (oder beides). Gelegentlich sehen wir Situationen, in denen Benutzer in großen Mengen migriert wurden, ohne dass ihre Rollen und Benutzerprofile ordnungsgemäß migriert wurden. Als Standardverfahren sollte der Entwickler vor dem Migrieren von Berechtigungen benutzerdefinierte Berechtigungen erstellen und sie Rollen von Personen/Berechtigungen zuweisen.

Miserable Website-Performance

  1. Unnötige Module: Module sind die Bausteine ​​Ihrer Drupal-Site, daher sollten Sie sie ebenfalls migrieren. Aber manchmal sehen wir veraltete unnötige Drupal 7-Module, die zu Drupal 9 verschoben wurden, was alle möglichen Probleme verursachen kann. Vor allem, da sie Ihre Website belasten können. Hier sind einige Gründe, warum einige Ihrer Module nicht migriert werden müssen:
    • Das Modul (oder seine Funktionalität) wurde bereits in Drupal Core verschoben. Beispielsweise wurde das von Medien bereitgestellte Modul in Drupal 8.5 in den Kern verschoben, wodurch die Verwendung des bereitgestellten Moduls entfällt.
    • Seine Funktionalität ist einfach und kann in ein anderes benutzerdefiniertes Modul eingefügt werden. Wenn beispielsweise ein node::postSave-Modul nur für einen oder zwei Inhaltstypen verwendet wird, um auszuwählen, wohin der Benutzer gehen soll, nachdem der Knoten erstellt wurde, könnte es möglich sein, den Code stattdessen in ein benutzerdefiniertes Modul zu verschieben.
    • Die Anforderungen an das Modul müssen neu bewertet werden. Manchmal kann eine kleine Änderung in der Benutzerfreundlichkeit die Website-Performance enorm verbessern. Beispielsweise benötigen nicht alle Websites wirklich ein Inhaltsmoderationsmodul, es sei denn, das Content-Marketing-Team ist groß und verteilt. Die wichtigsten redaktionellen Workflow-Funktionen von Drupal (Entwurf, Veröffentlichung) sind gut genug für die meisten Geschäftsanforderungen, die keinen komplexen / detaillierten Workflow erfordern.
    • Manchmal werden Submodule zusammen mit Modulen installiert, aber selten/nie verwendet. Solche Submodule sollten entfernt werden.
  2. Replizieren der gleichen Architektur: Obwohl es einfacher ist, eine Migration einfach zu verschieben und abzustauben, ist dies fast nie ein guter Ansatz. Vor allem, wenn die ältere Architektur (Drupal 6/7) chaotisch und weniger robust war. Eine Änderung der Geschäftslogik/Anforderungen könnte auch eine vollständige Neuarchitektur erfordern. Eine gründliche Prüfung vor Ort wird Ihnen genau sagen, welche Module beibehalten werden müssen und welche sicher entfernt werden können.

Integrationen von Drittanbietern funktionieren nicht mehr

  1. Veraltete API-Version: Wenn Ihre Website mit verschiedenen Tools von Drittanbietern wie Salesforce, Marketo, Mailchimp usw. verbunden ist, kann eine nicht ordnungsgemäß durchgeführte Migration die Funktionsweise dieser Integrationen beeinträchtigen. Oft ist die API, die Sie im Drupal-Integrationsmodul aufrufen, eine ältere Version. Die einzige Lösung besteht darin, dass die Integration in der neuesten Version der Drittanbieter-API geschrieben werden sollte.
  2. Probleme mit dem Integrationsmodul: Sie müssen überprüfen, ob die APIs von Drittanbietern im Integrationsmodul korrekt aufgerufen werden. Werden die Parameter richtig übergeben? Überprüfen Sie, wie sie gesetzt und abgerufen werden. Überprüfen Sie die Problemwarteschlange für dieses Integrationsmodul. Möglicherweise ist ein Patch verfügbar, der angewendet werden muss. Es müssen ordnungsgemäße Tests durchgeführt werden, um sicherzustellen, dass die API ordnungsgemäß auf Drupal 9 portiert wurde.

Andere häufige Probleme und Fehlerbehebungen

  1. Modulinstallation: Verwenden Sie zum Installieren von Modulen immer den Composer. Dadurch werden Fehler aufgrund ungültiger/nicht verfügbarer Abhängigkeiten vermieden.
  2. Nichtübereinstimmung der Migrationsquelle: Stellen Sie unabhängig von Ihrer Migrationsquelle (CSV, Datenbank, JSON, XML) sicher, dass die Quellfelder mit den Zielfeldern übereinstimmen. Wenn Sie CSV als Quelle verwenden, denken Sie an die Importreihenfolge – die Priorität ist wichtig für die Zuordnung der Inhaltstypen.
  3. Bildpfade: Häufig fügen Benutzer Bilder direkt innerhalb des CKEditor-Inhalts hinzu. Diese Bilder gehen bei der Migration nicht immer in den angegebenen Pfad, da sich ihr Speicherort normalerweise von dem der anderen Mediendateien unterscheidet. Eine sorgfältig geplante Migration sollte dieses Problem lösen.
  4. SEO: Eine fahrlässige Migration von Drupal 7 auf 9 kann die SEO Ihrer Website in vielerlei Hinsicht beeinträchtigen. Eines der wichtigsten Probleme sind defekte Links. Stellen Sie sicher, dass die vorhandene URL-Struktur und -Navigation erhalten bleibt, da jede Änderung zu einer Menge defekter Links führen kann. Ein vollständiges SEO-Audit muss durchgeführt werden, um sicherzustellen, dass es keine Unebenheiten auf der Straße gibt.
  5. Stil von Drupal 7: Häufig treten Probleme bei der Migration von Drupal 7 zu Drupal 9 (insbesondere Leistungsprobleme) auf, weil die Entwickler den gleichen Codierungsstil wie Drupal 7 verwenden, anstatt sich an die Änderungen anzupassen, die Drupal 8 mit sich bringt. Beispiele: (a) die Art und Weise, wie Sie töten Der Seiten-Cache ist in Drupal 8 sehr unterschiedlich. (b) Drupal 8 verfügt über ein integriertes Konfigurationsmanagement, das jedoch häufig nicht in jeder Umgebung richtig implementiert oder gut gewartet wird. (c) Wir sind auch auf Fälle gestoßen, in denen das Drupal 8-Projekt immer noch prozeduralen Codestil implementiert.