logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Core-Aktualisierung über Composer

21/06/2025, by Ivan

Diese Dokumentation ist unvollständig. Fügen Sie weitere Informationen hinzu.

Haben Sie Probleme beim Update auf Drupal 8.8.0 oder neuer?
Wesentliche Änderungen wurden in Drupal 8.8.0 im Rahmen der Composer-Initiative vorgenommen, die die Composer-Workflows zur Verwaltung von Drupal-Sites langfristig deutlich verbessern. Es gibt jedoch einige spezielle Hinweise, die das Update von früheren Versionen beeinflussen können.

Erste Schritte

Um zu verstehen, wie Composer die Abhängigkeiten von Drupal verwaltet, siehe Composer mit Drupal verwenden. Um zu entscheiden, ob Composer ein sinnvoller Weg zum Aktualisieren ist, vergleichen Sie die verfügbaren Optionen.

Zur Vereinfachung sind in dieser Anleitung die Drush-Befehle enthalten, die für den Abschluss des Updates erforderlich sind: Viele Menschen finden Drush schneller und einfacher als das Admin-Webinterface.

Wenn dies eine bestehende Drupal-Website ist, bei der Composer bisher nie verwendet wurde, stellen Sie zunächst sicher, dass sie für Composer bereit ist.

Drupal 8 Core aktualisieren

Zuerst stellen Sie sicher, dass ein Core-Update tatsächlich verfügbar ist:

composer update --dry-run "drupal/*"

Dies zeigt verfügbare kleinere Updates oder Patch-Updates; verwenden Sie das veraltete composer "drupal/*", wenn Sie wissen wollen, ob es Updates für Major-Versionen gibt. (Siehe Semver 2.0 für eine Erklärung von Major-, Minor- und Patch-Versionen.) Wenn keine Zeile mit drupal/core beginnt, kennt Composer keine Updates. Notieren Sie, ob eine Zeile mit drupal/core-recommended beginnt. Wenn ein Update vorliegt, fahren Sie mit den unten stehenden Befehlen fort.

Ein-Schritt-Update-Anleitung

Vorausgesetzt, Sie sind es gewohnt, Drupal zu aktualisieren und kennen alle notwendigen Vorsichtsmaßnahmen, ist das Update so einfach wie:

composer update drupal/core --with-dependencies
drush updatedb
drush cache:rebuild

Ersetzen Sie drupal/core durch core-recommended, wenn Sie core-recommended auf Ihrer Site verwenden. Sie können feststellen, ob Ihre Site core-recommended nutzt, wenn es in Ihrer composer.json-Datei aufgeführt ist oder wenn es in der Ausgabe von composer update --dry-run angezeigt wird, wenn Sie nach verfügbaren Updates suchen.

Wenn Sie Ihre Drupal-Site vor einiger Zeit mit drupal-composer/drupal-project eingerichtet haben, funktioniert der obige Befehl möglicherweise nicht. Bitte lesen Sie die folgende Liste.

Für das Update auf Version 8.8.0 oder neuer

Die neueste Version von drupal-composer/drupal-project ist mit Drupal 8.8.x kompatibel. Wenn Sie Ihre Site jedoch vor einiger Zeit (2019 oder früher) aus diesem Projekt erstellt haben, müssen Sie beim ersten Update auf 8.8.0 oder neuer wahrscheinlich einige einmalige Änderungen vornehmen. Diese Änderungen sind in den folgenden besonderen Hinweisen ausführlich beschrieben.

Wenn Sie Drupal 8 nicht mit Composer installiert haben

Wenn Sie Drupal 8 nicht mit Composer installiert haben, müssen Sie Ihre Site in ein Composer-verwaltetes Projekt umwandeln, um Drupal mit den oben genannten Befehlen aktualisieren zu können. Siehe Composer zu bestehenden Sites hinzufügen für eine Schritt-für-Schritt-Anleitung zur manuellen Integration von Composer in bestehende Drupal-8-Sites, die zuvor ohne Composer installiert wurden.

Schrittweise Update-Anleitung

Alle Schritte zum Aktualisieren des Drupal 8 Cores mit Composer:

1. Machen Sie vor dem Update immer eine Sicherung Ihrer Dateien und Datenbank.

  • drush sql:dump exportiert die Datenbank
  • Leider wurde drush archive-dump in Drush 9 entfernt, daher müssen Sie das Standard-CLI-Tool verwenden, um die notwendigen Verzeichnisse zu sichern – in der Regel mit Ausnahme des vendor-Verzeichnisses.

2. Lesen Sie die Release Notes. Einige hinzugefügte Module oder Themes müssen möglicherweise für die neue Minor-Version (z. B. 8.3–8.4) des Drupal-Cores aktualisiert werden. Patch-Releases (z. B. von 8.4.4 zu 8.4.5) sollten dies nicht erfordern. Um herauszufinden, ob Module oder Themes Updates benötigen, lesen Sie die Projektseite oder Release Notes.

3. Aktivieren Sie den Wartungsmodus mit dem Befehl system.maintenance_mode 1 und leeren Sie anschließend den Cache.

4. Wenn Sie festgestellt haben, dass einige Module oder Themes aktualisiert werden müssen, folgen Sie den Anweisungen zum Aktualisieren von Modulen.

5. Aktualisieren Sie den Core und alle Abhängigkeiten:

                   - Führen Sie den folgenden Composer-Befehl aus:

composer update drupal/core --with-dependencies

                   - Ersetzen Sie drupal/core oben durch drupal/core-recommended, wenn Sie das core-recommended Template verwenden.
                   - Wenn Sie Ihre Drupal-Site mit drupal-composer/drupal-project eingerichtet haben, beachten Sie die folgenden besonderen Hinweise für zusätzliche erforderliche Schritte beim ersten Update auf 8.8.0 oder neuer.

6. Führen Sie anschließend alle notwendigen Datenbank-Updates mit drush updatedb aus und leeren Sie den Cache mit drush cache:rebuild.

7. Wenn Sie Konfigurationsmanagement zum Deployment verwenden, exportieren Sie unbedingt die Konfiguration mit drush config:export nach dem Datenbank-Update, da einige Core-Updates die Struktur der Konfigurationsdateien ändern oder neue Werte einführen können. Verwenden Sie die Option --diff, um die Änderungen anzuzeigen.

8. Stellen Sie sicher, dass Ihre Drupal-Site in Ordnung ist:

  • Überprüfen Sie die Statusbericht-Seite auf Fehler.
  • Wenn das Datenbank-Protokoll-Modul aktiviert ist, führen Sie einige grundlegende Aktionen durch und prüfen Sie die neuesten Protokolle auf Fehler, Warnungen usw.

9. Deaktivieren Sie den Wartungsmodus mit drush state:set system.maintenance_mode 0 und leeren Sie den Cache mit drush cache:rebuild.

10. Nach dem Deaktivieren des Wartungsmodus testen Sie die Seite auch als anonymer Benutzer.

In Ihrer Produktionsumgebung

  • Sie müssen den oben beschriebenen Rest des Prozesses nicht wiederholen, da composer install die genauen Fixpunkte für alle Pakete aus composer.lock liest, sodass Sie in beiden Umgebungen dieselben Versionen haben.
  • Wenn Sie separate Dev-/Staging- und Produktionsserver haben, stellen Sie sicher, dass Sie die Dateien composer.json und composer.lock in die Produktion kopieren/festschreiben und immer composer install --no-dev in der Produktion ausführen, anstatt zu aktualisieren. Die Option --no-dev verhindert die Installation von Paketen, die in require-dev gelistet sind, was typischerweise Debug-Module und Bibliotheken für Unit-/Behavior-Tests sind.

 

Besondere Hinweise zum Update auf Drupal 8.8.0 und neuer

Der offizielle Beta-Programm-Partner PreviousNext veröffentlichte einen hilfreichen Blogeintrag über die Schritte, die sie unternommen haben, um von Drupal 8.7 auf die Beta-Version von Drupal 8.8.0 zu aktualisieren, was anderen Website-Betreibern mit Update-Problemen helfen kann.

Die Hauptursache für Probleme bei Updates von früheren Drupal-Versionen auf 8.8.0 mit Composer ist der Wechsel von der von der Community bereitgestellten Composer-Template zu dem neuen offiziellen Template drupal/recommended-project. Die folgenden Fehlerbehebungsschritte sollten Ihre Installation reparieren, sodass Sie die Standard-Update-Anleitungen wie oben beschrieben verwenden können.

Versuchen Sie, das /vendor-Verzeichnis zu löschen

Das Löschen Ihres vendor-Verzeichnisses kann manchmal Konflikte bei Composer-Updates beseitigen. Dafür:

cd your_install_dir

rm -rf vendor

Danach können Sie mit der Fehlerbehebung fortfahren und/oder den Composer-Update-Befehl ausführen.

Migration von webflo/drupal-core-strict zu drupal/core-recommended

Vor Version 8.8.0 verwendeten viele Sites das Metapaket webflo/drupal-core-strict, um Abhängigkeiten auf exakt getestete Versionen mit dem Drupal-Core (hauptsächlich Symfony-Pakete) festzunageln. Ab Version 8.8.0 stellt der Drupal-Core das Paket drupal/core-recommended zur Verfügung, um diese Funktion bereitzustellen. Der Wechsel vom alten zum neuen Metapaket erfolgt beim Update auf Core 8.8.0 nicht automatisch, und webflo/drupal-core-strict funktioniert nicht mit 8.8.0.

Der einfachste Weg für diese Migration und um Konflikte zu vermeiden, ist, die composer.lock-Datei komplett zu löschen als Teil des Updates. Allerdings können dabei andere Abhängigkeiten (z. B. hinzugefügte Drupal-Module) ebenfalls aktualisiert werden. Die folgenden Schritte sorgen dafür, dass genau das aktualisiert wird, was Sie möchten:

  1. composer update # Aktualisieren Sie alle Abhängigkeiten als eigenen Schritt.
  2. git add composer.lock; git commit # Speichern Sie die Updates als separaten Commit.
  3. composer remove webflo/drupal-core-strict --no-update
  4. composer remove drupal/core --no-update
  5. composer require 'composer/installers:^1.7' --no-update
  6. rm composer.lock
  7. rm -rf vendor # Hilft ebenfalls, Konflikte zu vermeiden.
  8. composer require drupal/core-recommended:^8.8 --update-with-dependencies
  9. git add composer.json composer.lock; git commit -m "Update Drupal to 8.8.0 and use drupal/core-recommended instead of webflo/drupal-core-strict"

 

Migration von webflo/drupal-core-require-dev zu drupal/core-dev

Wenn Sie Ihre Site vor einiger Zeit erstellt haben, kann sie das Metapaket webflo/drupal-core-require-dev zur Einbindung von Drupal-Dev-Abhängigkeiten für Unit- und Funktionstests verwenden. Wenn Sie keine Dev-Abhängigkeiten benötigen, können Sie webflo/drupal-core-require-dev einfach entfernen. Andernfalls sollten Sie auf das Projekt drupal/core-dev umsteigen.

Zuerst entfernen Sie das alte Dev-Tools-Paket:

composer remove --dev webflo/drupal-core-require-dev

Wenn Sie keine Entwickler-Tools benötigen, können Sie hier aufhören. Falls Sie diese erneut installieren wollen, nutzen Sie den offiziellen Weg:

composer require --dev drupal/core-dev

Patch-Updates

Wenn Sie Patches mit cweagans/composer-patches anwenden, müssen diese Patches möglicherweise neu gefasst werden. Nachdem ein Patch neu gefasst wurde, müssen Sie den Patch im Abschnitt extra/patches Ihrer composer.json aktualisieren.

Update von konfliktierenden Soft-Abhängigkeiten

In manchen Fällen ist eine Abhängigkeit mit einer Version installiert, die mit der neuesten Drupal-Version nicht kompatibel ist. Die Lösung besteht darin, bestimmte Versionen dieser Module mit composer require zu aktualisieren, dann den Core zu aktualisieren und danach die Abhängigkeiten wieder zu entfernen.

Das folgende Beispiel stammt aus einem großartigen Beitrag von PreviousNext:

Zuerst wird der neue Core und die Abhängigkeiten benötigt:

composer require --update-with-dependencies \
drupal/core:^8.8.0 \
symfony/finder:^3.4 \
symfony/filesystem:^3.4

Zweitens wird das neue core-dev-Paket und Abhängigkeiten benötigt:

composer require --dev --update-with-dependencies \
drupal/core-dev:^8.8.0 \
symfony/debug:^3.4 

Schließlich entfernen Sie temporär benötigte Abhängigkeiten:

composer remove -n \
symfony/finder \
symfony/filesystem \
composer remove -n --dev symfony/debug

Update der Datenbankkonfiguration und des Schemas

Nach dem Code-Update müssen Sie möglicherweise die Datenbankkonfiguration und das Schema aktualisieren:

drush updb
drush cr
drush config-export

Update der Settings.php

In Drupal 8.8.0 wird das Synchronisationsverzeichnis in $settings statt in $config_directories definiert, daher muss die Datei Settings.php aktualisiert werden.

Ändern Sie einfach von:

$config_directories['sync'] = 'foo/bar';

zu:

$settings['config_sync_directory'] = 'foo/bar';

Bekannte Probleme und Workarounds

Wenn Sie den Befehl composer update oben ausführen, aber drupal/core nicht aktualisiert wird, gibt es möglicherweise eine andere Abhängigkeit, die das Update von Drupal blockiert. Sie können Abhängigkeitsblockaden mit dem Befehl composer prohibits prüfen. Zum Beispiel, wenn Sie von Version 8.4.5 auf 8.5.0 aktualisieren wollen, führen Sie composer prohibits drupal/core:8.5.0 aus; dies sollte eine Liste der Abhängigkeiten anzeigen, die das Update verhindern. Aktualisieren Sie diese zusammen mit drupal/core, dann sollte es funktionieren (z. B. composer update drupal/core "symfony/*" --with-dependencies).

Composer-Update-Probleme hängen oft mit übrig gebliebenen Composer-Templates oder falschen Einstellungen in composer.json zusammen. Stellen Sie sicher, dass Sie ein Composer-Template verwenden, wie in Kapitel 3.5 des Drupal 8 Benutzerhandbuchs „Composer zum Herunterladen und Aktualisieren von Dateien verwenden“ empfohlen. Siehe Composer zu bestehenden Sites hinzufügen für eine Schritt-für-Schritt-Anleitung zur manuellen Integration von Composer in bestehende Drupal-8-Sites, die zuvor ohne Composer installiert wurden.

Stand Januar 2020 ist das Composer-Template drupal-composer/drupal-project für Drupal-Projekte kein empfohlenes Template mehr für Drupal 8.8 und höher. Bis Kapitel 3.5 des Drupal 8 Benutzerhandbuchs aktualisiert wird, konsultieren Sie das Community-Handbuch zum Starten einer Site mit Composer-Projekt-Templates.

Weitere relevante Probleme und Blogbeiträge mit zusätzlichen Hilfen:

Bei Fehlern und Warnungen während des Update-Prozesses lesen Sie diese sorgfältig und suchen Sie in den Issue-Queues nach Lösungen, bevor Sie fortfahren. Bei fatalen Fehlern wird dringend empfohlen, das Update abzubrechen und den gesamten Prozess mit der zuvor erstellten Sicherung neu zu starten.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.