
Wie migriert man WordPress zu Drupal? Eine Schritt-für-Schritt-Anleitung
Website-Migration ist ein wichtiges Thema, das wir aus einer breiteren Perspektive in einem anderen Artikel bereits behandelt haben. In diesem Blogbeitrag konzentrieren wir uns auf ein spezifisches Beispiel. Wir betrachten die Migration von WordPress, dem beliebtesten Content-Management-System, zu Drupal. Wir werden die Vorteile einer solchen Migration untersuchen, wie sie funktioniert und wie wir uns darauf vorbereiten sollten.
Warum eine WordPress-Website zu Drupal migrieren?
Die Migration einer WordPress-Website zu Drupal kann in vielen Situationen von Vorteil sein, wegen der Vorteile des CMS mit dem blauen Tropfen im Logo. Mit fortgeschritteneren Konfigurationsmöglichkeiten erlaubt Drupal eine vollständigere Kontrolle über die Inhaltsstruktur und Funktionalitäten, was insbesondere für Projekte, die spezialisierte Lösungen erfordern, nützlich ist. Hier sind einige Vorteile, wegen denen wir eine solche WordPress-Migration in Betracht ziehen sollten.
Ein umfangreiches Ökosystem von Komponenten
Basierend auf Symfony, ermöglicht Drupal es uns, leistungsstarke Features auf einfache, schnelle und klare Weise zu erstellen. Dank der vollständigen Objektivität, auferlegten Design-Mustern und der Verwendung von Komponenten dieses PHP-Frameworks ist die Projektentwicklung und -wartung einfacher. Ein reichhaltiges Ökosystem fertiger Lösungen steigert die Effizienz und spart Zeit.
Darüber hinaus bietet Drupal uns viele von der Community erstellte Module. Selbst bei ungewöhnlichen geschäftlichen Anforderungen gibt es eine gute Chance, dass Entwickler, die sich um diese Technologie scharen, bereits eine Modullösung erstellt haben. Die Drupal-Community verdient auch Lob für ihre Bereitschaft, Unterstützung zu bieten und Wissen zu teilen. Patches für solche individuellen Bedürfnisse werden manchmal für Module erstellt, die mit der Zeit mit Updates eingeführt werden.

Quelle: Drupal.org
Sicherheit und Zugangskontrolle
Wenn Sicherheit ein entscheidender Bestandteil des Projekts ist, kann Drupal eine zuverlässige und bewährte Option mit besseren Optionen für das Datenzugriffsmanagement und häufigen Sicherheitsupdates sein. Zugangskontrolle für sensible Daten wird standardmäßig in Drupal bereitgestellt, was für Websites, die sensible Informationen speichern, unerlässlich ist.
Darüber hinaus können wir bei der Erstellung von Routen oder Ansichten genau definieren, wer Zugang dazu haben wird. Alles von ganzen Seiten und Funktionen bis hin zu einzelnen Feldern oder Werten, die in einem Feld ausgewählt werden können, können wir mit entsprechenden Rollen und Berechtigungen über die UI steuern.


Leistung und Skalierbarkeit
Drupal, insbesondere in seinen neuesten Versionen, ist auf Leistung optimiert und kann effektiv große Mengen an Inhalten und hohen Traffic verwalten. Wenn wir planen, unsere Website zu erweitern und Skalierbarkeit benötigen, kann Drupal die wachsende Last besser bewältigen als WordPress.
Dieses System funktioniert auch gut als Backend-API. Dank der integrierten Funktionen können wir alle Daten problemlos im JSON/XML-Format weitergeben, ohne benutzerdefinierte Logik schreiben zu müssen. Dies eröffnet viele Möglichkeiten zur Integration mit mobilen Apps, Frontend-Frameworks und anderen Tools.
Content-Management für große Websites
Für Projekte mit vielen Inhalten und komplexen Strukturen bietet Drupal fortgeschrittene Content-Management-Werkzeuge. Fertige Entitäten, wie Inhaltstypen oder Gruppen, ermöglichen es uns, die Inhalte auf unserer Website logisch zu organisieren. Die Einfachheit und Flexibilität der Kategorisierung ist einer der Hauptvorteile von Drupal.
Wir erhalten nicht nur die Möglichkeit, auf Entitäten zu reagieren, sondern auch, sie frei zu gestalten. Zusätzliche Felder einzufügen, Beziehungen zwischen ihnen zu erstellen und verschiedene Anzeigeoptionen, die davon abhängen, wo sie verwendet werden, sind nur einige der Vorteile. Zum Beispiel, eine Ansicht, die uns eine bestimmte Art von Inhalten auflistet, zusammen mit fortgeschrittenen Filter- und Sortieroptionen, ist im UI in nur wenigen Momenten anklickbar, ohne den Code zu berühren.
Anpassbare Verwaltungsoberfläche
Wenn die Anpassung der Verwaltungsoberfläche an spezifische Bedürfnisse entscheidend ist, erlaubt Drupal fortgeschrittene Änderungen und Anpassungen. Dies wird für Projekte, die ein detailliertes Layout des Admin-Panels, ein spezifisches Aussehen oder Berechtigungen erfordern, äußerst hilfreich sein.
Wir können neue Blöcke mit wertvollen Links oder Statistiken hinzufügen, neue Ansichten erstellen, die für uns spezifische Entitäten basierend auf unseren eigenen Bedingungen auflisten, und dann die Links ändern, indem wir eine solche Ansicht zu einem bestehenden oder neuen Menü hinzufügen. Wir können auch das Aussehen des Admin-Panels personalisieren, indem wir bereits fertige Skins sowie unsere eigenen Styles verwenden.

Es besteht auch die Möglichkeit, Abkürzungen für den schnellen Zugriff auf häufig verwendete Funktionen hinzuzufügen.
Ein weiterer wesentlicher Vorteil ist die Zugangskontrolle, die es uns ermöglicht, Benutzerberechtigungen für das Admin-Panel präzise zu verwalten. Zum Beispiel, wenn wir nicht möchten, dass ein Inhaltseditor Zugang zu API-Integrationseinstellungen oder zum Ändern von Cron-Jobs hat.
WordPress-zu-Drupal-Migration – wie funktioniert der Prozess?
Wir haben einige wichtige Schritte für die Migration von WordPress zu Drupal basierend auf der Erfahrung unserer Entwickler vorbereitet. Während die Spezifika der Websites variieren können, ist der Migrationsprozess in der Regel derselbe und funktioniert ähnlich. Es gibt eine gewisse Universalität im Migrationsansatz, die ihn für die meisten Projekte vorhersehbarer und schematischer macht.
Vorbereitung auf die WordPress-Migration
Bevor wir mit der Migration beginnen, müssen wir überlegen, in welcher Form wir die Daten von der vorherigen Website bereitstellen werden. In den meisten Fällen werden wir dafür eine XML-Datei benötigen, die als Backup aus WordPress generiert wird.
Unser erster Schritt ist es, genau zu bestimmen, was wir wohin migrieren werden. Wir werden versuchen, die vorherige Website zu überprüfen, um sicherzustellen, dass das, was wir verschieben, notwendig ist. Denken wir daran, dass weniger manchmal mehr ist. Zum Beispiel müssen wir möglicherweise keine Nachrichten von 2009 mehr auf unserer neuen Webseite haben. Wir haben mehr über die Planungsphase in unserem vorherigen Artikel über Website-Migration geschrieben.
Konfiguration von Drupal, bevor Sie WordPress migrieren
In der Zielumgebung bereiten wir die Datenstruktur vor, in der wir die migrierten Daten speichern werden. Nach vorheriger Planung sollten wir wissen, für welche Inhalte wir Taxonomien oder Gruppen verwenden sollten und welche Inhalte benutzerdefinierte Entitäten benötigen werden.
Wir möchten, dass diese Website bereit ist, bevor wir mit der eigentlichen Migration beginnen. Es ist auch notwendig, die Migrate Plus- und CTools-Module sowie WordPress Migrate zu installieren. Es ist auch eine gute Idee, die geplanten Module zu implementieren, die für die Zielseite benötigt werden. Beispiele beinhalten Datetime oder Telephone, die ein entsprechendes Widget für das Textfeld hinzufügen werden. Dies wird während der Datenmigration definitiv hilfreich sein.
WordPress-Inhaltsmigration
Wir beginnen die Datenmigration immer mit der Erfassung von Informationen. Daten werden von einer Quelle zur anderen verschoben, und unsere Aufgabe ist es, sie in entsprechende Entitäten zu ordnen.
Im Fall von WordPress wird es am besten sein, eine aus der alten Website exportierte XML-Datei dafür zu verwenden. Hier können wir das zuvor erwähnte WP Migrate-Modul verwenden, das einige Arbeiten für uns erledigen wird. Es wird Kategorien, Blogbeiträge oder Inhaltsseiten verschieben. Alles, was dieses Modul nicht automatisch erledigt, müssen wir manuell durch das Schreiben unserer Migrationsprozesse mit YML-Dateien und Migrations-Plugins migrieren.
Die Migration einer Website zu Drupal besteht aus drei Phasen:
- Datenabruf,
- Datenverarbeitung,
- Datenspeicherung.
Im ersten Schritt müssen wir Daten aus einer Quelle abrufen, z.B. einer SQL-Datenbank oder einer XML-Datei in vollständiger Form. Zum Beispiel könnte es sich um einen Blog-Artikel mit Titel, Inhalt, Autor, Grafikinformationen usw. handeln. Im nächsten Schritt "sagen wir Drupal", welche Nachricht an welches Feld weitergeleitet werden soll.
Dies ist auch der perfekte Zeitpunkt, um die Website während der Migration zu organisieren. Oft stellen wir fest, dass sie viele unnötige Daten enthält, die wir nicht verschieben müssen. Diese können insgesamt übersprungen oder während des Prozesses geändert und unseren neuen Bedürfnissen angepasst werden. Im letzten Stadium der Datenspeicherung erstellen wir in Drupal einen Eintrag als spezifische Entität.
Besonders wichtig ist, dass die Inhaltsmigration in viele kleinere Migrationen unterteilt werden kann. Anstatt in einem umfangreichen Prozess können wir zuerst nur Benutzer migrieren, dann Taxonomien und Bilder, und erst am Ende - spezifische Inhaltstypen und möglicherweise benutzerdefinierte Entitäten.
Dieser Ansatz gibt uns die Möglichkeit, bereits während der Migration leicht Beziehungen zwischen Entitäten zu schaffen, da andere Migrationsprozesse referenziert werden können, während die Daten verarbeitet werden. Bei Droptica bevorzugen wir diese Form der Website-Migration, da wir uns keine Sorgen über Datenverlust machen müssen und der Prozess organisierter wird.
Website-Besitzer kümmern sich manchmal auch darum, die URL-Struktur für bestimmte Entitäten zu ändern. In diesem Fall sind entsprechende Weiterleitungen notwendig, um die SEO-Interessen der Website zu schützen. Es ist bereits während der Migration sinnvoll, sicherzustellen, dass das Pathauto-Modul die erforderlichen Schemen eingestellt hat.
WordPress-Migrationstests
Sobald wir die Daten bereit haben, wird es gute Praxis sein, sie gründlich zu testen. Es lohnt sich, etwas Zeit für automatisierte Tests aufzuwenden, um alle Inhalte gründlich zu überprüfen. Wenn sich herausstellt, dass die Daten in Bezug auf Inhalt oder Menge nicht übereinstimmen, ist das ein Zeichen für uns, die erforderlichen Anpassungen an den Migrations-Plugins vorzunehmen.
Der Einsatz der richtigen Inhalte gibt uns einen erheblichen Vorteil. Wenn wir Testinhalte verwendet haben, bemerken wir möglicherweise keine großen Probleme. Unerwartete Fehler können bei Benutzerinhalten auftreten, was an dieser Stelle besser gelöst wird. Randfälle nur während der Entwicklung zu eliminieren, ist leider nicht immer möglich.
Wenn wir auch unsere eigene Entität in WordPress hatten und wir diese Daten ändern oder verarbeiten mussten, sollte besonderes Augenmerk auf das Testen solcher Inhalte gelegt werden.
Funktionalitäten von WordPress zu Drupal migrieren
Bei der Migration von Funktionalitäten müssen wir uns etwas länger auf das Layout der Geschäftslogik stützen. Im Fall von WordPress können wir sogar einzelne PHP-Dateien innerhalb des CMS geschrieben haben.
Die Module/Plugins, die von der Community bereitgestellt werden, sind ebenfalls völlig anders. Oft ist es der Fall, dass ein Problem, das im alten System mehrere Plugins (oft kostenpflichtig) und zusätzlichen benutzerdefinierten Code erforderte, in Drupal leicht in der Form eines beigetragenen Moduls oder einer Funktionalität, die bereits im Kern des CMS vorhanden ist, "behoben" werden kann.
In dieser Phase müssen wir entscheiden, welcher Weg eingeschlagen werden soll. Wir schreiben benutzerdefinierte Module, konfigurieren oder ändern die von der Community bereitgestellten Module und überprüfen ständig mit der vorherigen Website, um sicherzustellen, dass wir definitiv in die richtige Richtung gehen.
Natürlich kann es vorkommen, dass wir diese Funktionalitäten ändern, neue hinzufügen oder solche entfernen, die nicht mehr benötigt werden. Die Migration zu einer neuen Website ist ein großartiger Zeitpunkt für solch einen Aufräumvorgang. Wir arbeiten dann an einer Webseite, die noch nicht in Produktion sichtbar ist und nicht von Benutzern genutzt wird.
Verifizierung der fertigen WordPress-zu-Drupal-Migration
Sobald der Migrationsprozess abgeschlossen ist, konzentrieren wir uns auf die wichtigsten Aspekte, um sicherzustellen, dass die neue Website reibungslos läuft und unseren Erwartungen entspricht. Hier sind einige Schritte, die befolgt werden sollten.
Integration mit externen Diensten und APIs
Wir stellen sicher, dass alle Integrationen mit externen Diensten korrekt konfiguriert sind, wie zuvor vereinbart funktionieren oder an neue Anforderungen angepasst sind. Wir überprüfen auch hauptsächlich, ob API-Verbindungen problemlos funktionieren.
Inhalts- und Medienkontrolle
Wir überprüfen, ob die Inhalte auf der neuen Website mit den ursprünglichen Daten übereinstimmen. Es ist auch wichtig, zu überprüfen, dass Bilder, Videos und andere Medien korrekt angezeigt werden. Wir stellen sicher, dass keine Daten verloren gegangen sind und dass alle Inhalte ordnungsgemäß von WordPress übertragen wurden.
Fehler- und Logüberwachung
Während der Tests überprüfen wir regelmäßig Watchdog (ein System zur Protokollierung von Aktivitäten und Fehlern innerhalb von Drupal) auf nach der Migration auftretende Fehler. Wir überprüfen auch auf unerwartete Fehlermeldungen, z.B. von PHP, beim Durchsuchen der Website.
SEO- und Seitenlade-Geschwindigkeitsoptimierung
Wir überprüfen, ob die SEO-Module von Drupal korrekt konfiguriert sind, und überwachen die Ladegeschwindigkeit der Seite und passen sie gegebenenfalls an, z.B. durch Aggregation von Styles und JavaScript.
Testen von Funktionalität und Berechtigungen
Wir testen die wichtigsten Funktionen der Website, insbesondere diejenigen, die mit der Benutzerinteraktion verbunden sind. Wir stellen sicher, dass alle Inhaltsberechtigungen korrekt konfiguriert sind.
Reaktionsfähigkeit und Gerätekompatibilität
Wir überprüfen, ob die Website nach der Migration reaktionsfähig ist und auf verschiedenen Bildschirmen korrekt angezeigt wird. Wir bestätigen, dass das Frontend wie erwartet auf allen verwendeten Geräten funktioniert. Wir achten darauf, alle sensiblen Funktionen zu betrachten, wie Formulare oder Tabellen, die auf schmaleren Bildschirmen besondere Probleme haben könnten.
Qualitätsprüfung und Tests
Wir führen eine Qualitätsprüfung der Website durch. Werkzeuge wie CodeSniffer und PHP Stan werden uns dabei helfen. Wir stellen außerdem sicher, dass die Webseite den automatisierten Testprozess (Codeception) durchläuft und in unsere Pipeline integriert ist.
Reproduktion des gesamten funktionalen Prozesses
Im Rahmen der Migration von WordPress zu Drupal ist der letzte Schritt, den gesamten funktionalen Prozess oder die Prozesse präzise zu reproduzieren. Anstatt uns auf spezifische Funktionen zu beschränken, konzentrieren wir uns darauf, die Kontinuität der Benutzererfahrung durch einen umfassenden Flow sicherzustellen, den wir im Test-Szenario definieren.
Zum Beispiel könnte es sein, das gesamte Formular zur Registrierung eines neuen Benutzers durchzugehen, Berechtigungen zuzuweisen und zuzuordnen, sowie Rollen und Zugriffsebenen anzupassen, um frühere Strukturen widerzuspiegeln. Wir können uns auch auf den Prozess der Erstellung neuer Inhalte konzentrieren. Wir achten darauf, die Kompatibilität mit der Struktur und den Inhaltstypen des vorherigen Systems aufrechtzuerhalten, um einen nahtlosen Übergang für Administratoren und Endbenutzer zu ermöglichen.
Die Reprodukition des gesamten funktionalen Prozesses stellt nicht nur sicher, dass die verschiedenen Elemente korrekt funktionieren. Es ist wesentlich, Szenarien zu durchlaufen, die aus Funktionalitäten bestehen, die nicht im Drupal-Kern enthalten sind, sondern explizit für die Website geschrieben wurden. Oft sind dies Schlüsselelemente der Geschäftslogik, und wir müssen sicherstellen, dass alle wichtigen Funktionen nach ihrer Umsetzung perfekt funktionieren. Schließlich wollen wir nicht von Hunderten von E-Mails überflutet werden, dass etwas nach der Migration nicht funktioniert.
WordPress-zu-Drupal-Migration - Zusammenfassung
Die Migration von WordPress zu Drupal ist ein komplexer Prozess, der durch verschiedene Faktoren gerechtfertigt wird. Ein CMS kann aufgrund fortschrittlicher Konfigurationsmöglichkeiten, besserer Sicherheit, Zugangskontrolle, Leistung und Skalierbarkeit einem anderen vorgezogen werden.
Während der Migration lohnt es sich, die neue Webseite und deren Funktionalitäten an spezifische Bedürfnisse anzupassen und die URL-Struktur oder das Design zu optimieren. Durch den Fokus auf eine Qualitätsüberprüfung, automatisierte Tests, Fehlerüberwachung und Anpassung der Reaktionsfähigkeit können wir eine reibungslose Webseitenimplementierung sicherstellen.
Das Verschieben einer WordPress-Website zu Drupal ist ein komplexer Prozess, der Planung, Sorgfalt und Tests erfordert. Wenn Sie erwägen, Ihre Webseite zu übertragen oder Unterstützung zu diesem Thema benötigen, können Sie auf unsere Hilfe zählen. Wir sind spezialisiert auf Drupal-Migration zu höheren Versionen und von anderen CMS-Systemen.