TYPO3 unterscheidet zwischen Major Releases und Minor Releases. Majorversionen werden durch die erste, namengebende Zahl einer Version repräsentiert. Zum Beispiel steht TYPO3 12 LTS eigentlich für die Version 12.4, während TYPO3 11 die Version 11.5 ist. Major Releases enthalten bedeutende Veränderungen im Vergleich zur vorherigen Major Version. Die zweite Zahl in der Versionsnummer kennzeichnet die Nebenversion. Bis zur Veröffentlichung der stabilen LTS-Version durchläuft eine neue Majorversion mehrere Stufen, in denen neue Funktionen hinzugefügt und bestehende Fehler korrigiert werden. Die LTS-Version repräsentiert die erste stabile Nebenversion und beinhaltet sämtliche neuen Funktionen und Verbesserungen. Daher sind die Nebenversionen vor der LTS-Version beim Update oder Upgrade zu vernachlässigen. Ein Upgrade lohnt sich erst, wenn die LTS-Version vollständig entwickelt wurde.
Nach dem Release der LTS-Version folgen nur noch Minor-Versionen, die an dritter Stelle der Versionszahl stehen und hauptsächlich Bugfixes und Sicherheitsupdates enthalten. Das aktuelle TYPO3 ist die Version 12.4.10 (Stand: Januar 2023), was bedeutet, dass TYPO3 12 LTS bereits mehrere Patches erhalten hat. Es ist generell ratsam, einige Monate nach der Veröffentlichung einer LTS-Version abzuwarten, bevor man seine Instanz aktualisiert, da in dieser Zeit viele Patches veröffentlicht werden.
Der Übergang von einer Minor-Version zur nächsten wird als Update bezeichnet, während ein Upgrade den Wechsel zwischen Major-Versionen bedeutet. Ein Upgrade mit mehreren dazwischenliegenden Major-Versionen wird auch als Versionssprung bezeichnet, zum Beispiel beim Upgrade von TYPO3 9 auf TYPO3 12. Ein Versionssprung ist in der Regel komplizierter als ein Upgrade auf die nächste Version, dabei mehrere Upgrades auf die jeweils nächste Version durchgeführt werden. Der Ablauf eines TYPO3 v12 Upgrades wird im Folgenden genauer betrachtet, wobei die grundsätzlichen Schritte bei einem Upgrade immer ähnlich sind, unabhängig von der TYPO3-Version.
Vorbereitungen
Wenn Sie sich bereits mit Upgrades beschäftigt haben, werden Sie wahrscheinlich gelesen und gehört haben, dass Upgrades niemals auf einer Live-Instanz durchgeführt werden sollten. Das hat seinen Grund: Jedes Upgrade oder Update kann schiefgehen, und nicht alle auftretenden Komplikationen sind vorhersehbar. Zur Sicherheit erstellt man zunächst eine Kopie der vorhandenen Instanz, auf der das Upgrade durchgeführt werden kann. Es ist auch ratsam, ein Backup bereitzuhalten, falls während des Upgrades Strukturen beschädigt werden und wiederhergestellt werden müssen. Die Erstellung einer Kopie bzw. eines Backups einer TYPO3-Instanz erfordert das Kopieren aller Dateien (per FTP, SCP, rsync oder einer anderen Methode) sowie das Exportieren der Datenbank in eine SQL-Datei. Während des gesamten Upgrade-Vorgangs sollte außerdem ein Content-Freeze eingehalten werden, damit Inhalte nicht doppelt (vor und nach dem Upgrade) eingepflegt werden müssen. Alle weiteren beschriebenen Schritte finden sich auch auf der offiziellen TYPO3 Website.
Systemanforderungen
Bevor das eigentliche Upgrade beginnt, muss zudem geprüft werden, ob die Systemanforderungen für die neue Version erfüllt sind. Es ist ratsam, eine möglichst aktuelle PHP-Version zu nutzen, die mit der gewünschten TYPO3-Version kompatibel ist. Bei TYPO3 12 ist PHP 8.1 eine Mindestanforderung.
Extensions aktualisieren
Bevor man mit der Kopie arbeitet, sollte man prüfen, ob die Kopie genauso funktioniert wie die Live-Instanz. Im Zuge dessen sollten auch die Erweiterungen nach Deprecations durch das Deprecations-Log im Install Tool geprüft werden. Dieser sollte einige Tage laufen. Alternativ oder zusätzlich sollte der Extension-Scan genutzt werden. Die Deprecations sollten vor dem Upgrade gelöst werden.
Nicht mehr benötigte Erweiterungen müssen nicht aktualisiert und können direkt gelöscht werden, um den Aufwand zu reduzieren. Denn das Aktualisieren von Erweiterungen ist oft der aufwändigere Teil eines Upgrades im Vergleich zum eigentlichen TYPO3 Core Update.
Es kann vorkommen, dass Extensions zwar mit der gewünschten TYPO3-Version kompatibel sind, aber nicht mit der verwendeten PHP-Version der neuen TYPO3-Version. In diesem Fall muss möglicherweise eine ältere PHP-Version verwendet werden, oder man verzichtet auf den Einsatz solcher Extensions, da diese früher oder später sowieso obsolet werden und sucht nach Alternativen. Weiterhin kann es Extensions geben, die als nicht kompatibel angezeigt werden, aber trotzdem auf der neuen TYPO3-Instanz funktionieren. Hier ist etwas Testen erforderlich. Viele Extensions lassen sich einfach auf die neueste Version aktualisieren und nach dem Upgrade der Instanz weiterhin nutzen. Manchmal ist die neueste Version jedoch nicht für die alte TYPO3-Instanz verfügbar. In diesem Fall kann es sich lohnen, die Extension auf die höchstmögliche Version zu aktualisieren und nach dem Upgrade auf die neueste Version zu bringen. Einige Erweiterungen müssen vor dem Upgrade deaktiviert werden und werden dann nach dem Upgrade aktualisiert. Individuelle Extensions können eventuell eigens an die neue Version angepasst werden müssen. Das könnte den größten Aufwand bedeuten, sodass es für die Zukunft möglicherweise sinnvoll ist, auf andere Lösungen zu setzen.
Referenz-Index überprüfen
Der globale Referenz-Index verwaltet Verknüpfungen zwischen Inhaltselementen und Dateien. Das Überprüfen und Aktualisieren dieses Index kann auf zwei Wegen erfolgen: entweder über die Kommandozeile (CLI) oder über das Modul DB-Überprüfung (System-Module). Da der Vorgang, besonders bei großen Websites mit vielen Seiten und Dateien, viel Zeit in Anspruch nehmen kann und nicht regelmäßig durchgeführt werden muss, wird die Methode über die Kommandozeile empfohlen. Der DB-Check ist besonders für kleine Websites mit wenigen Unterseiten und Dateien eine Alternative.
Changelog prüfen
Dieser Schritt ist optional, aber es ist vorteilhaft, ein Upgrade sorgfältig vorzubereiten. Jeder Changelog einer Version enthält Punkte wie Breaking Changes, Important, Features und Deprecations. Es wird empfohlen, sich mindestens die Breaking Changes und die Punkte unter Important anzusehen. Die Changelogs können auf verschiedene Arten gelesen werden: im Extension Scanner des Upgrade-Moduls in den Systemmodulen oder online. Auf der offiziellen TYPO3 Website findet an auch den Changelog für TYPO3 12. Der Extension Scanner bietet den Vorteil, dass man nach Tags filtern und Changelogs wie eine To-do-Liste abarbeiten kann.
Globale Extensions konvertieren
In früheren Versionen von TYPO3 waren globale Erweiterungen ein einfacher Weg, um Erweiterungen zwischen mehreren TYPO3-Instanzen zu teilen. Heutzutage wird empfohlen, Erweiterungen über den Composer zu installieren und zu pflegen. Deswegen wurde mit TYPO3 v12 die Unterstützung von globalen Extensions entfernt, sie müssen in lokale Extensions konvertiert werden.
Um eine globale Extension in eine lokale zu konvertieren, muss man im Backend-Modul Extensions (unter Admin Tools) die globale Erweiterung deinstallieren. Weiterhin müssen die Dateien der Erweiterung aus typo3/ext/
, einschließlich des Verzeichnisses der Erweiterung selbst gelöscht werden. Anschließend muss man die Erweiterung erneut aus dem TYPO3 Extension Repository installieren, wodurch sie in typo3conf/ext/
abgelegt wird.
TYPO3-Core Upgrade
Die benötigten TYPO3-Quellen können entweder per Composer oder durch Verwendung von wget (oder cURL) von der typo3.org Website bezogen werden. Durch den Befehl composer info typo3/*
werden alle aktuell verwendeten TYPO3-Pakete in der Installation aufgelistet. Jedes Paket muss während des Upgrades aktualisiert werden. Mithilfe des Composer Helper Tools kann ein Upgrade-Kommando einfach generiert werden. In der Regel treten dabei Abhängigkeitsfehler auf. Auf typo3.org finden sich alle Informationen zum TYPO3-Core Update sowie eine Anleitung, wie man mit diesen Fehlern umgehen kann. Zu beachten sind auch die Breaking Changes für TYPO3 v12.
Nachbereitungen
Alle notwendigen Schritte, die nach dem TYPO3-Core-Update durchgeführt werden müssen, finden man auch auf der offiziellen TYPO3 Website.
Upgrade Wizard
Nach dem TYPO3-Core-Update sollte der Upgrade Wizard durchgeführt werden. Man kann darauf zugreifen, indem Sie das Installationstool über beispiel-website.de/typo3/install.php
öffnen. Der Upgrade Wizard führt einen durch mehrere Schritte, beginnend mit der Erzeugung fehlender Datenbank-Tabellen und -Felder. Alle Aktualisierungen lassen sich auch in der Kommandozeile durchführen.
Manche Schritte im Upgrade Wizard beinhalten Funktionen, die eventuell nicht gebraucht werden, diese sollten nicht ausgeführt werden.
Datenbank analysieren
Nach dem Upgrade sollten Sie ins Wartungsmodul gehen und die Option zum Analysieren der Datenbank nutzen. Die Ergebnisse zeigen eine Liste von Änderungen, die in der Regel fast alle durchgeführt werden können. Besonders zu beachten sind nicht mehr benötigte Tabellen. Es sollte geprüft werden, ob diese wirklich entfernt werden können.
Letzte Schritte
Im Wartungsmodul sollte man die Sprachpakete aktualisieren. Möglicherweise müssen die Benutzereinstellungen in demselben Modul zurückgesetzt werden. In jedem Fall muss der Cache unter Wartung geleert werden und im Install Tool müssen temporäre Assets mit der Option Clean Up entfernt werden.
Kommentare