
Wie Sie auf Drupal 10 von Drupal 8 oder 9 upgraden? Umfassender Leitfaden
Veränderungen in der digitalen Welt sind unvermeidlich und notwendig. Für Drupal-Nutzer und -Entwickler ist einer der entscheidenden Momente die Migration des Systems zur neuesten Version. In diesem Blogpost konzentriere ich mich speziell auf den Prozess des Upgrades auf Drupal 10 und führe Sie Schritt für Schritt durch die Vorbereitung, was zu überprüfen ist und welche Maßnahmen zu ergreifen sind, um den Übergang so reibungslos und nahtlos wie möglich zu gestalten.
Warum Drupal 10?
Die neue Version von Drupal wurde offiziell am 14. Dezember 2022 veröffentlicht, womit ein wichtiger Schritt in der fortlaufenden Entwicklung dieses Content-Management-Systems markiert wurde.
Ein Upgrade auf Drupal 10 ist nicht nur eine Frage des Zugangs zu neuen Funktionen und Verbesserungen, sondern spielt auch eine wichtige Rolle für die Sicherheit und Stabilität Ihrer Website. Der Support für Drupal 9 endete am 1. November 2023, was ein Upgrade nicht nur empfehlenswert, sondern in einigen Fällen notwendig macht.
Unterschiede zwischen Drupal 9 und Drupal 10
Drupal 10 bringt mehrere Verbesserungen, die darauf abzielen, die Arbeit zu erleichtern und die Sicherheit zu erhöhen. Es führt jedoch keine grundlegenden Änderungen in der Systemstruktur ein, sodass der Übergang von den vorherigen Versionen den Benutzer nicht zwingt, sich an eine völlig neue Umgebung anzupassen.
Hier sind einige grundlegende Änderungen im Vergleich zur vorherigen Version des Systems:
- Olivero - neues Standard-Frontend-Theme: Olivero ersetzt Bartik als Haupt-Frontend-Theme und führt ein frisches und modernes Design ein.
- Claro - ein neues Standard-Verwaltungstheme: Claro ersetzt Seven und bietet eine transparentere Verwaltungsoberfläche, die auf Effizienz und Benutzerfreundlichkeit ausgelegt ist.
- Teilweiser Ersatz von jQuery durch JavaScript: Diese Änderung spiegelt einen Trend in der Webentwicklung wider, bei dem JavaScript aufgrund seiner Leistung und Flexibilität jQuery allmählich verdrängt.
- CKEditor-Upgrade auf Version 5: Die neueste Version des CKEditor wurde komplett neu geschrieben. Sie bietet großartige Möglichkeiten zur Erweiterung und Integration mit modernen Technologien.
- Entfernung der Unterstützung für PHP unter Version 8.1: Drupal 10 erfordert PHP-Version 8.1 oder höher.
- Symfony-Version 6.2: Im Gegensatz zu seinem Vorgänger, der dieses Framework bereits ab Version 4 unterstützte, erfordert die neueste Version von Drupal Symfony Version 6.2. Dies ist ein wichtiger Schritt zur Verbesserung der Sicherheit und Optimierung von Websites, die auf diesem Content-Management-System basieren.
Entfernte Module und Themes
Eine weitere bedeutende Änderung in der neuesten Drupal-Version ist die Entfernung einiger Themes und Module, die in Drupal 9 bereits als "veraltet" gekennzeichnet waren. Sie sind weiterhin als Contributed Modules verfügbar, werden jedoch separat entwickelt und sind nicht Bestandteil des Drupal-Kerns. Nachfolgend eine Liste dieser Module:
Gelöschte Module | Entfernte Themes |
Aggregator | Seven |
CKEditor (Version 4) | Bartik |
Color | Classy |
HAL | Stable |
Quick Edit | |
RDF |
Erforderliche PHP- und Datenbankversionen
Drupal 10 hat spezifische Systemanforderungen, die Sie erfüllen müssen, um einen reibungslosen Betrieb der Plattform sicherzustellen. Zusätzlich zur PHP-Version 8.1 oder höher (8.1.6 wird als Minimum empfohlen) müssen Sie auch sicherstellen, dass Sie die richtige Datenbankversion haben. Nachfolgend präsentiere ich Ihnen eine Liste kompatibler Versionen:
Datenbank | Versionen | Erforderliche Erweiterungen |
MariaDB | 10.3.7 und höher | PDO |
MySQL/Percona | 5.7.8 und höher | PDO |
PostgreSQL | 12 und höher | pg_trgm |
SQLite | 3.26 und höher | json1 |
Microsoft SQL Server und MongoDB werden ebenfalls durch separate Contributed Modules unterstützt.
Vorbereitung auf ein Drupal-Upgrade
Ich empfehle, ein Backup der Website und der Datenbank zu erstellen, bevor Sie mit dem Upgrade fortfahren. Dadurch können Sie Ihre Webseite im Falle von Problemen schnell wiederherstellen. Stellen Sie außerdem sicher, dass Ihr Hosting die von Drupal 10 benötigten PHP- und Datenbankversionen unterstützt, wie ich oben geschrieben habe.
Migration von Drupal 8
Im November 2021 endete der Support für Drupal 8, was zu keiner weiteren Sicherheitsupdates und technische Unterstützung für diese Version führte. Daher lohnt es sich, über eine Migration zu einem neueren System nachzudenken.
Für Drupal 8-Nutzer, die ein Upgrade auf Drupal 10 planen, ist ein ein erstes Upgrade auf Version 9 erforderlich. Dies ist ein wesentlicher Schritt im Migrationsprozess, um eine reibungslose Anpassung an die neuesten Standards und Funktionen zu ermöglichen, die "zehn" bietet. Sobald dieser erste Schritt des Upgrades abgeschlossen ist, können Sie mit den nächsten Schritten fortfahren. Für weitere Informationen und Tipps zum Upgrade Ihres Systems von Drupal 8 auf 9, werfen Sie einen Blick auf unseren Artikel über wie man sich richtig um ein Drupal-Upgrade kümmert.
Migration von Drupal 9 nach 10
Wenn Sie von Drupal 9 auf 10 upgraden, sollten Sie darauf vorbereitet sein, dass der gesamte Prozess aus vielen Schritten besteht. Ich beschreibe jeden von ihnen unten, um Ihnen die Durchführung der Migration zu erleichtern.
1. PHP auf Version 8.1 aktualisieren
Wenn Sie diese Version oder höher noch nicht installiert haben, müssen Sie mit dem Upgrade fortfahren. Bevor Sie beginnen, überprüfen Sie, ob alle Module und Themes auf Ihrer Website mit der neueren PHP-Version kompatibel sind. Nützliche Werkzeuge für diesen Prozess sind PHP Codesniffer und PHP Compatibility.
2. Drupal 9 auf die neueste Version aktualisieren
Der nächste Schritt besteht darin, Drupal 9 auf eine Mindestversion von 9.4.4 zu aktualisieren (allerdings wird die neueste Version, 9.5.11, empfohlen). Dazu können Sie die folgenden Befehle verwenden:
composer update "drupal/core-*" --with-all-dependencies
drush cr -y
updb
drush cex -y
3. Themes mit "veraltet" Status deinstallieren
Die Classy-, Bartik-, Stable- und Seven-Themes wurden in der neuesten Version von Drupal entfernt. Deinstallieren Sie sie daher vor dem Upgrade aus /admin/appearance. Wenn Sie jedoch Themes haben, die auf den oben genannten basieren, können Sie deren Contributed-Versionen mit den folgenden Befehlen installieren:
composer require drupal/seven
composer require drupal/classy
composer require drupal/bartik
composer require drupal/stable
4. Migration zu CKEditor 5
Die Migration des Editors zu CKEditor 5 ist ein Prozess, der komplizierter sein kann als ein Standard-Upgrade, hauptsächlich weil CKEditor 5 von Grund auf neu geschrieben wurde. Die neue Architektur bringt viele erweiterte Funktionen und Verbesserungen mit sich. Aufgrund der vollständigen Neuschreibung des Codes sind jedoch nicht alle in CKEditor 4 verfügbaren Plugins direkt mit der neuen Version kompatibel.
Vor der Migration ist es wichtig, die Kompatibilität und Verfügbarkeit der von Ihnen verwendeten Plugins sorgfältig zu prüfen und diese möglicherweise für die neueste Version des Editors neu zu schreiben. Weitere Informationen hierzu finden Sie in der CKEditor-Dokumentation.
Wenn alle Plugins kompatibel sind, können Sie mit den folgenden Schritten fortfahren:
- Gehen Sie zuerst zu /admin/modules und installieren Sie das CKEditor 5-Modul.
- Gehen Sie dann zu /admin/config/content/formats und klicken Sie auf die Schaltfläche "Konfigurieren" neben jedem Format, bei dem Sie den Editor wechseln möchten.

- Ändern Sie den Editor in dem unten mit einem roten Pfeil markierten Feld und klicken Sie auf "Speichern" am unteren Rand der Seite. Fahren Sie bei jedem zu ändernden Format auf diese Weise fort.

- Im letzten Schritt gehen Sie zu /admin/modules/uninstall und entfernen das CKEditor-Modul.
5. Module mit Drupal Upgrade Status aktualisieren
Vor dem Upgrade wird auch empfohlen, das Drupal Upgrade Status-Modul zu installieren. Die Hauptaufgabe dieses Tools besteht darin, die Kompatibilität der momentan installierten Module und Themes mit den Standards der neuen Systemversion zu analysieren. Dadurch können Benutzer schnell Elemente identifizieren, die vor dem Migrationsprozess aktualisiert oder geändert werden müssen.
Der erste Schritt besteht darin, das Modul zu installieren und zu aktivieren:
composer require drupal/upgrade_status
drush en upgrade_status
Gehen Sie dann zu /admin/reports/upgrade-status, wählen die Module aus, die überprüft werden sollen, und klicken auf die Schaltfläche "Ausgewählte scannen".
Nach Abschluss des Scanvorgangs erhalten Sie eine Rückmeldung mit einer Liste von Modulen, die mit Drupal 10 nicht kompatibel sind.
In meinem Fall gibt es ein Problem mit dem Custom-Modul. Wie Sie im folgenden Bild sehen können, schlägt das Drupal Upgrade Status-Modul selbst eine Lösung für das Problem vor. In diesem Fall handelt es sich um einen Fehler, der mit der Core-Version in der info.yml-Datei zusammenhängt. Ich habe die Fehler im Code korregiert und es erneut gescannt - ich empfehle Ihnen dasselbe.

Lösen Sie Kompatibilitätsprobleme, bis die Leiste in der oberen rechten Ecke 100% anzeigt.

Bei Ihren benutzerdefinierten Modulen können Sie die Änderungen am Code einfach selbst vornehmen. Meistens müssen Contributed Modules auf die neuesten Versionen aktualisiert werden, die Drupal 10 unterstützen.
Die Sache wird kompliziert, wenn das von Ihnen verwendete Modul noch nicht Drupal 10 unterstützt. Es gibt mehrere Lösungen für dieses Problem. Eine davon ist ein Plugin für Composer, das es Ihnen erlaubt, Module zu installieren, die noch nicht mit Drupal 10 kompatibel sind. Nachfolgend schlage ich vor, wie dies getan werden kann.
Der erste Schritt besteht darin, das Plugin zu installieren:
composer require mglaman/composer-drupal-lenient
Fügen Sie dann das Modul hinzu, das Sie aktualisieren möchten, indem Sie den Befehl verwenden:
composer config --merge --json extra.drupal-lenient.allowed-list '['module name']'
Der letzte Schritt besteht darin, einen Patch zu erstellen, um die Kompatibilität Ihres Moduls mit D10 zu ermöglichen, und ihn zu composer.json hochzuladen.

Wenn Sie den gesamten Prozess erfolgreich abgeschlossen haben, können Sie zum nächsten Upgrade-Schritt übergehen.
6. Drupal Core auf Version 10 aktualisieren
Vor dem Upgrade des Drupal-Kerns ist es ratsam, composer.json zu überprüfen und veraltete Patches zu entfernen, die nicht mit der neueren Version kompatibel sind. Nachdem dieser Prozess abgeschlossen ist, implementieren Sie die nächsten Schritte.
Geben Sie den Befehl im Terminal ein:
composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
Wenn Sie core-dev verwenden, nutzen Sie diesen Befehl:
composer require 'drupal/core-dev:^10' --dev --update-with-dependencies --no-update
Dann erhöhen Sie Drush in composer.json auf die neueste Version:
composer require 'drush/drush:^12' --no-update
Führen Sie den Befehl aus:
composer update
Wenn die Versionen in Composer ohne Fehler funktionieren, führen Sie aus:
drush cr -y
updb
drush cex -y
7. Website-Test
Nach dem Upgrade auf Drupal 10 ist es wichtig, gründliche Website-Tests in einer lokalen Umgebung durchzuführen. Stellen Sie sicher, dass alle wichtigen Funktionalitäten und Website-Elemente korrekt funktionieren. Sie sollten grundlegende Funktionen wie Formulare, Navigation, Modulperformance oder Integration mit externen Diensten überprüfen. Es ist auch ratsam, die Website aus visueller Sicht gründlich zu überprüfen und Protokolle zu prüfen, um potenzielle Fehler zu erkennen.
8. Deployment auf Test- und Produktionsserver
Sobald die Website in einer lokalen Umgebung gründlich getestet wurde, ist der nächste Schritt die Bereitstellung auf einem Testserver. Dies ist eine empfohlene Maßnahme, da es ermöglicht, weitere Tests unter Bedingungen durchzuführen, die der tatsächlichen Nutzung ähnlich sind.
Nach erfolgreichem Testen auf dem Testserver folgt die Deployment-Phase auf den Produktionsserver . Dies ist die letzte Phase des Upgrades, während der die Website in der Zielumgebung gestartet und für alle Benutzer verfügbar wird. Es ist wichtig sicherzustellen, dass dieser Prozess sorgfältig geplant und durchgeführt wird. Auf diese Weise können Ausfallzeiten und potenzielle Störungen der Website-Verfügbarkeit minimiert werden.
Denken Sie daran, Ihr Hosting noch einmal gründlich auf die Anforderungen von Drupal 10 zu überprüfen bevor Sie auf einen Produktionsserver bereitstellen, und stellen Sie sicher, dass Sie ein Backup Ihrer Webseite und Datenbank erstellt haben.
Liste potenzieller Probleme beim Drupal-Upgrade
Beim Upgrade Ihres Systems auf Drupal 10 können verschiedene Probleme auftreten. Werfen Sie einen Blick auf meine Liste, um zu wissen, was Sie erwarten und wie Sie damit umgehen können.
1. Funktionen entfernt und als "veraltet" markiert
In Drupal 10 wurden viele Funktionen entfernt oder als "veraltet" markiert, die in Drupal 9 funktionierten. Dies kann potenziell Fehler in Protokollen verursachen. Die Lösung des Problems besteht darin, den Code zu verbessern oder Patches für die Module zu schreiben, in denen sie auftreten. Ein ausgezeichnetes Tool zur Unterstützung dieses Prozesses ist das zuvor beschriebene Drupal Upgrade Status-Modul.
2. AccessCheck() erforderlich
Ab Drupal 10 müssen alle Inhaltsentitätsabfragen einen Aufruf der ::accessCheck() -Methode enthalten, bevor sie ausgeführt werden. Dies ist eine Systemanforderung zur Verbesserung der Sicherheit und Zugriffskontrolle.
3. Die jQuery once-Funktion
Die jQuery once-Funktion wurde aus dem Drupal 10-Core entfernt, ist jedoch in vielen von der Community bereitgestellten Modulen noch vorhanden, was zu Fehlern führen kann:
Uncaught TypeError: $(...).once is not a function
Potenzielle Lösungen:
- Ändern Sie die core/jquery.once-Bibliothek zu core/once in *.libraries.yml des Moduls oder Themes.
- Ändern Sie die $.once()-Funktion zu once() in JavaScript-Dateien.
4. Module, die nicht mit Drupal 10 kompatibel sind
Ein häufiges Problem bei Upgrades ist die Inkompatibilität von benutzerdefinierten und contributed Modules mit Drupal 10. Mögliche Lösungen für solche Probleme habe ich im Abschnitt zum Drupal Upgrade Status-Modul beschrieben.
5. Abhängigkeiten in Composer
Versuche, ein Update durchzuführen, werden oft durch Abhängigkeiten verschiedener Module in Composer blockiert. Ein hilfreiches Tool zur Lösung solcher Konflikte sind die Befehle, die ich im nächsten Absatz ausführlicher beschreibe.
Liste nützlicher Befehle
Um Ihre Aktionen in Composer zu vereinfachen, habe ich eine Liste praktischer Befehle zusammengestellt, die je nach Situation verwendet werden können.
1. Composer why-not (Sie können auch composer prohibits verwenden)
Dieser Befehl zeigt eine Liste von Abhängigkeiten an, die ein Update verhindern. Anwendungsbeispiel:
composer why-not drupal/core ^10
2. Das --no-update-Flag
Ermöglicht es, eine neue Abhängigkeit zu composer.json hinzuzufügen, ohne sie sofort zu aktualisieren und neue Pakete zu installieren. Anwendungsbeispiel:
composer require 'drush/drush:^12' --no-update
3. Das -dry-run-Flag
Es ermöglicht, den Aktualisierungsprozess zu simulieren, ohne tatsächlich Änderungen vorzunehmen. Der Composer zeigt, welche Aktionen während des Updates durchgeführt werden, nimmt jedoch keine Änderungen an den tatsächlichen Dateien oder Abhängigkeiten des Projekts vor. Anwendungsbeispiel:
composer update --dry-run
Upgrade von Drupal 8 oder 9 auf 10 - Zusammenfassung
Der Prozess des Upgrades auf Drupal 10 erfordert zwar einiges an Aufwand und Engagement, ist jedoch eine Investition, die Ihrem CMS-Lösung erhebliche Vorteile bringen kann. Es ist nicht nur ein Schritt nach vorn, um die neuesten Funktionen und Verbesserungen zu nutzen, sondern auch ein wesentlicher Aspekt zur Verbesserung der Sicherheit und zur Anpassung Ihrer Website an die neuesten Webstandards.
Hoffentlich erleichtert Ihnen dieser Leitfaden den Prozess und stellt Ihnen alle notwendigen Tools zur Verfügung, um ihn effektiv und ohne große Schwierigkeiten durchzuführen. Sollten Sie jedoch an einem Punkt entscheiden, dass Sie professionelle Hilfe benötigen, um Ihre Website auf Drupal 10 zu aktualisieren, können unsere erfahrenen Entwickler ein vollständiges Upgrade durchführen oder Sie bei der von Ihnen gewählten Migrationsphase unterstützen.