Da die Deltas des Update per php-script eingespielt werden, wird die Ausführung der einzelnen Deltas sowie entsprechende Fehlermeldung beim Einspielen in der Tabelle s_schema_version geloggt. Fehlermeldungen tauchen in der Spalte error_msg auf. Steht hier ein Null, so wurde das Delta erfolgreich ausgeführt. Falls es einen Fehler beim Einspielen eines Deltas gibt, so wird die Fehlermeldung in die Spalte error_msg geschrieben.
Die Deltas findest Du unter /update-assets/migrations. Ob diese auch eingespielt wurden, kannst Du in der o.g. Datenbanktabelle kontrollieren. Überprüfe, ob für die Migration ein Eintrag vorhanden ist und ob die Felder start_date und end_date ein korrekter Timestamp ist (YYYY-MM-DD HH:MM:SS) und das Feld error_msg auf Null steht.
Falls es zu Problemen beim Einspielen der Deltas kommt, so empfehlen wir zuerst das komplette Datenbank-Backup zurückzuspielen und nachfolgend die aufgezeigten Fehler zu korriegen. Alternativ kannst Du das Delta auch per Hand einspielen (ausführen). In diesem Fall muss der entsprechende Eintrag in der s_schema_version gesetzt werden (s.o.). Sollte das Delta bereits korrekt in der Datenbank gesetzt sein, so kannst Du bei "error_msg" das NULL und bei "end_date" ein Enddatum setzen. Wird nun der Updater erneut ausgeführt, so wird dieses Delta übersprungen.
Der Auto Updater kann die folgende Meldung anzeigen:
"Für ihre eingesetzte Shopware Version konnte keine aktive Software-Subscription ermittelt werden. Das Auto-Update kann aktuell nicht durchgeführt werden."
Hast Du eine aktive Subscription und erscheint diese Meldung dennoch, ist eine Lizenz in der Datenbank hinterlegt, die nicht aktuell ist. Prüfe dann folgende Schritte. Möglicherweise kannst Du nicht alle Schritte prüfen, da der Lizenz-Manager nicht mehr vorhanden ist oder der Bereich "Shopware-Lizenz" lädt:
Frontend:
No mapping found for field '***' on class 'Shopware\Models\Attribute\***'. in vendor/doctrine
oder
Fatal error: Cannot redeclare Shopware\Models\Attribute\CustomerGroup::$customerGroup in /var/www/production/shopware/engine/Shopware/Models/Attribute/CustomerGroup.php on line 84
Backend:
Fatal error: Cannot redeclare Shopware\Models\Attribute\User::$user in /var/www/production/shopware/engine/Shopware/Models/Attribute/User.php on line 84
Mögliche Ursache können defekte Beziehungen in den Datenbank-Tabellen sein, zur Korrektur kannst Du die Foreign-Keys reparieren. Leere im Anschluss den Cache manuell auf Datei-Ebene unter /var/cache und web/cache!
Sollte Dein Frontend oder Backend nach dem Update weiterhin den Wartungsmodus anzeigen, musst Du einen Ordner im Shopware-Verzeichnis löschen. Unten in der Beschreibung erklären wir Dir, welche dies sind.
Der Wartungsmodus sollte automatisch vom Updatescript von Shopware beendet werden. Falls dies nicht der Fall ist, hatte das Script nicht genügend Rechte um den Updateordner wieder zu löschen. Bitte gib dem Benutzer, mit dem der PHP-Prozess läuft, genügend Rechte um diese Aktion durchzuführen, damit das Update beim nächsten Mal komplett automatisch durchgeführt werden kann. Lösche bitte als nächstes die folgenden Ordner:
Beim Auto-Update: /files/update
Beim manuellen Update: /update-assets
Sollte der Artikelverlauf "zuletzt angeschaut" bei Dir nicht mehr korrekt funktionieren, so dass z.B. der Footer der Seite nicht mehr korrekt dargestellt werden kann, so kann die Ursache sein, dass das Template abgeleitet wurde und somit die Änderung aus dem Standard-Template nicht korrekt greifen kann.
Prüfe daher bitte folgende Datei: /templates/emotion_meintemplate/frontend/index/index.tpl
Ggf. ist dort noch folgender Inhalt enthalten:
{block name="frontend_index_footer"}
{if $sLastArticlesShow}
{action module=widgets controller=lastArticles}
{/if}
{/block}
Dieser Teil ist dann durch folgenden neuen Code zu ersetzen:
{block name="frontend_index_footer"}
{if $sLastArticlesShow && !$isEmotionLandingPage}
{include file="frontend/plugins/index/viewlast.tpl"}
{/if}
{/block}
Wir empfehlen, zusätzlich zu prüfen, ob die Datei: /templates/_default/frontend/plugins/index/viewlast.tpl dem Standard entspricht. Leere im Anschluss den Cache des Shops.
Erhältst du die Meldung "Internal Server Error: initTopSeller?offset=0&limit=15" ist die Topseller-Box deaktiviert worden (chartInterval = 0). Diese Konfiguration kann unter Umständen beim Update zu diesem Fehler führen. Einfach vor dem Update die Topseller-Box aktivieren.
Eine Meldung wie "The target-entity Shopware\Models\Attribute\... cannot be found in ..." erscheint, wenn die Attribut Models nicht korrekt generiert werden konnten. Falls möglich leere den kompletten Cache im Backend oder verwende das Consolen-Command bin/console sw:generate:attributes
Bekommst du die Meldung "importDatabase?offset=XXX&totalCount=XXX - Forbidden" kontrolliere, ob mod_evasive die Requests ablehnt und deaktiviere dieses Modul gegebenenfalls.
Erhältst Du die Meldung "Choose a smaller batch size" beim Auto-Update kontrolliere, ob im Ordner /files defekte Update-Dateien liegen (z.b. 0 Byte Dateien) und entferne diese.
Fehlermeldung:
Error
Received the following error message:
Could not apply migration: SQLSTATE[HY000]: General error: 1005 Can't create table 'database.#sql-xx_xx' (errno: 121)
Please try to fix this error and restart the update.
Response
{"valid":false,"errorMsg":"Could not apply migration: SQLSTATE[HY000]: General error: 1005 Can't create table 'database.#sql-xx_xx' (errno: 121)"}
In diesem Fall kann ein konkreter Migrationsschritt nicht ausgeführt werden. Die Migrationsschritte werden im Ordner update-assets/migrations oder auf GitHub mit der jeweiligen Migrationsnummer angezeigt. Die Nummer der Migration wird Dir in der Meldung ausgegeben und Du kannst dann in die Datei mit der passenden Nummer die einzelnen Queries sehen, die dieser Migrationsschritt ausführen würde.
Mögliche Ursachen:
Eine Meldung wie diese 'SmartyCompilerException' with message 'Syntax Error in template "/x/x/x.tpl"...{s name='IndexXmlLang'}{/s} unknown tag "s" stammt von einem inkompatiblen Pluign oder Theme-anpasungen. Mit dem Debug-Modus kann die Exception komplett ausgelesen werden: https://developers.shopware.com/developers-guide/shopware-config/#exceptions