Shopware Updates: Debuggen von Fehlern und FAQ

Gültig ab Version:
4.3.6

Am einfachsten ist es, das Shopware Update mit geöffnetem Debugger durchzuführen, um die Requests, die fehlschlagen, direkt mit Fehlermeldung sehen zu können. Manche Fehler werden dir direkt im Updater ausgegeben, dennoch ist es immer sinnvoll, den Debugger zu aktivieren.

Überprüfung der Tabelle s_schema_version

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.

Achtung: 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.

FAQ

Welche Ursache könnte folgende Fehlermeldung haben?

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!

Wartungsmodus wird trotz abgeschlossenem Update nicht beendet

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

"Zuletzt angeschaut" funktioniert nicht korrekt

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.

Internal Server Error: initTopSeller?offset=0&limit=15

Die Topseller-Box ist 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.

"Payment classes dir not loaded in engine/core/class/sSystem.php on line xxx" Nach Update auf Shopware 4.1.4

In diesem Fall ist es so, dass die PluginIDs in der s_core_subscribes nicht zu der tatsächlichen PluginID des PaymentMethods-Plugin passen. Um das zu korrigieren, führe bitte folgendes SQL-Query aus:

 
SET @plugin_id = (SELECT id FROM s_core_plugins WHERE name = 'PaymentMethods' LIMIT 1);
UPDATE `s_core_subscribes` SET `pluginID` = @plugin_id WHERE listener LIKE 'Shopware_Plugins_Core_PaymentMethods_Bootstrap%';
 

Beim Update erscheint die Fehlermeldung "The target-entity Shopware\Models\Attribute\... cannot be found in ..."

Dieser Fehler 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

Nach dem Update auf 5.1 erhalte ich viele Log-Einträge und eMails

Mit Shopware 5.1 wurde ein neuer Media Service integriert, wie hier beschrieben. Die Bilder werden soweit möglich automatisch in ein neues Verzeichnis verschoben. Sollte dies für bestimmte Bilder nicht funktionieren, etwa für Bilder, die fest im Content oder Text eingebunden sind, wird eine Warnmeldung in Form eines Log-Eintrags geschrieben. Du solltest zeitnah versuchen diese Bilder zu identifizieren, um sie auf die neue Struktur zu migrieren; Zum Beispiel durch erneutes Hinzufügen von Bildern im Texteditor.

Weitere Informationen findest Du in unserem Upgrade Guide for Developers.

Error: "rebuildAllAssignmentsCount" Nach Update von 4.0.8 auf 4.1.0

In in der s_categories hat der Eintrag root die parentId 1 - bei dieser Zeile müsste die parentId aber NULL sein, da root die höchste Ebene ist. Korrigiere den Eintrag in der Datenbank und führe diesen Schritt erneut aus.

importDatabase?offset=XXX&totalCount=XXX - Forbidden

Kontrolliere, ob mod_evasive die Requests ablehnt und deaktiviere dieses Modul gegebenenfalls.

Fehler beim Autoupdate: "Choose a smaller batch size"

Kontrolliere, ob im Ordner /files defekte Update-Dateien liegen (z.b. 0 Byte Dateien) und entferne diese.

Could not apply migration

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)"}
 

Mögliche Ursachen:

  • 1. Datenbank Strict-Mode noch aktiv.
  • 2. Foreign Keys defekt (zum Wiki Artikel).
  • 3. Prüfe, ob noch genug Speicherplatz frei ist.
  • 4. Systemvoraussetzung: Datenbank bzw. MySQL Version wird nicht erfüllt.
  • 5. Fehler beim Anwenden des SQL-Deltas (Überprüfung Tabelle s_schema_version - siehe oben).

....'SmartyCompilerException' with message 'Syntax Error in template "/x/x/x.tpl"...{s name='IndexXmlLang'}{/s} unknown tag "s"

Diese Exception 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

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*