Fehler nach Update auf 5.6 mit den E-Mail Vorlagen

Hallo zusammen,

nach Update von 5.4.6 über 5.5.10 auf 5.6 und gleichzeitiger Umstellung von PHP 7.0.33 auf 7.2 kommen wir nicht mehr in die E-Mail vorlagen. “Folgender Fehler sollte helfen…” Hilft mir leider nicht:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Could not convert database value "a:4:{s:5:"sName";s:1..." to Doctrine Type array in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php on line 46 Stack trace: #0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php(60): Doctrine\DBAL\Types\ConversionException::conversionFailed('a:4:{s:5:"sName...', 'array') #1 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(315): Doctrine\DBAL\Types\ArrayType->convertToPHPValue('a:4:{s:5:"sName...', Object(Doctrine\DBAL\Platforms\MySqlPlatform)) #2 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(331): Doctrine\ORM\Internal\Hydration\AbstractHydrator->gatherRowData(Array, Array, Array) #3 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(162): Doctrine\ORM\Internal\Hydration\ObjectHydrator->hydrateRowData(Array, Array) #4 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(152): Doctrine\ORM\Internal\Hydration\ObjectHydrator->hydrateAllData() #5 engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(561): Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll(Object(PDOStatement), Object(Doctrine\ORM\Query\ResultSetMapping), Array) #6 vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(181): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll(Array, NULL, NULL, NULL) #7 vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(164): Doctrine\ORM\EntityRepository->findBy(Array) #8 engine/Shopware/Controllers/Backend/Mail.php(54): Doctrine\ORM\EntityRepository->findAll() #9 engine/Library/Enlight/Controller/Action.php(192): Shopware_Controllers_Backend_Mail->getMailsAction() #10 engine/Library/Enlight/Controller/Dispatcher/Default.php(478): Enlight_Controller_Action->dispatch('getMailsAction') #11 engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #12 engine/Shopware/Kernel.php(184): Enlight_Controller_Front->dispatch() #13 vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), 

 

Kann mir hier jemand einen Tipp geben woran es liegen könnte?

Hm, an die neue MySQL-Version gedacht?

Da gibt es mögliche Lösungen: https://forum.shopware.com/discussion/62310/sw-5-6-problem-mit-email-vorlagen

1 „Gefällt mir“

Danke für die wirklich schnellen Antworten!

@R4M‍  Die MySQL Version sollte passen, so dachte ich jedenfalls wärend des Updates (es stand etwas von Maria DB und ein grüner Haken). Jetzt steht tatsächlich in den Infos Version 5.5.5 statt 5.7. --> Hoster wurder kontaktiert.

 

[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski „Moritz Naczenski“)‍

Es steht leider immer nur etwas von löschen, damit wären ja die Vorlagen komplett weg oder?

Unter stateId haben wir von den 104 Vorlagen die dort drin stehen etwa 80 mit NULL hinterlegt - auch viele die wir wirklich benötigen. Ein Löschen kann hier nicht die Lösung sein.

Auch bei Context wie in deinem Beitrag beschrieben steht bei etwa 20 Einträgen NULL drin.
Hast du ggf. noch einen besseren Tipp? :slight_smile:

Würde mich mal auf den Context konzentrieren. Glaube nicht, dass NULL ein Problem ist, hast du da ggf. irgenwo eine leere Spalte?

Leer war keine Spalte bei Context, es stand bei 2 Spalten nur N; drin. Daraus habe ich NULL gemacht was leider auch nichts geändert hat.

Hm, vielleicht hat der Fehler mit einem leeren Feld gar nichts zu tun? Denn da würde als Fehler dies kommen:

Could not convert database value "" to Doctrine

Oben steht aber:

Could not convert database value "a:4:{s:5:"sName";s:1..." to Doctrine

Nachtrag: Der einzige Eintrag mit “sName” ist wohl “sTELLAFRIEND”. Vielleicht stimmt hier etwas nicht?

1 „Gefällt mir“

Danke @R4M‍  , das hatte ich auch gesehen und diesen Eintrag mal komplett gelöscht auf dem Testshop - danach kam jedoch auch gleich der nächste Fehler für den nächsten Eintrag. Ich probier mal alles zu löschen was uns nicht wichtig ist.
Woher können diese Fehler denn generell kommen? Alle Plugins (Sicherheitsmodus) hatte ich auch mal deaktiviert (nicht gelöscht).

ICH hätte die Zeile aus der Datenbank gelöscht und aus der install.sql zu SW 5.6 den Insert neu erstellt und somit den Eintrag komplett neu angelegt.

@Moritz Naczenski schrieb:

Würde mich mal auf den Context konzentrieren. Glaube nicht, dass NULL ein Problem ist, hast du da ggf. irgenwo eine leere Spalte?

Wofür ist „Context“ gut? Kann ich einfach hier das NULL setzen? Ich hatte einige Zeilen gelöscht und bei den letzten beiden mal nur dort NULL gesetzt und danach bin ich rein gekommen, jedoch fehlen dann natürlich einige Vorlagen. 

Context ist nur für die Variablen-Vorschau rechts im Modul.

1 „Gefällt mir“

Und diese kommt neu, sobald die E-Mail einmal verschickt worden ist? Aber okay, dann weiß ich nun genau welche ich bei Context auf NULL setze und danach klappt es bei mir auch wieder. Danke euch beiden!

ich hänge mich mal dran.

habe im Contex überall was drin stehen und trotzdem keine Vorlagen mehr im backend. V5.6.1 von Shopware.

Wo kann man noch suchen?

Will jetzt nicht alles löschen müssen.

 

habe jetzt in der DB mails config gelöscht

Dachte kann aus Sicherung wieder herstellen

aber jetzt das:

#1005 - Kann Tabelle c1xxx.s_core_config_mails nicht erzeugen (Fehler: 150 “Foreign key constraint is incorrectly formed”) 

 

Was genau heißt keine Vorlagen mehr? Bei mir war es so, dass ich einen Fehler bekommen habe wenn ich das Fenster für die Vorlagen öffnen wollte.

Ich habe dann aus der Fehlermeldung den Teil in den Anführungszeichen in der Datenbank in besagter Tabelle ( s_core_config_mails)  unter Context gesucht und diesen wert auf “NULL” gesetzt:

Could not convert database value "a:4:{s:5:"sName";s:1"

Das habe ich Stück für Stück gemacht, die Fehlermeldung ändert sich nach jedem Mal auf “NULL” setzen (nicht einfach NULL reinschreiben ;)).

Also in der Tabelle sollte man nichts löschen, nur ein Feld leeren. Jetzt müsstest du den Foreign-Key Check deaktivieren für den Import.

Bei mir waren es die Hei***pay-Mail-Vorlagen. Das Plugin hatte ich vor dem Update deinstalliert.

Nach dem Ändern dieser Vorlagen funktioniert es wieder die Mailvorlagen zu öffnen.

Mhh wie erstelle ich jetzt die Tabelle wieder ?

Fremdschlüsselprüfung ist aus

Geht trotzdem nicht.

(130, NULL, 'sOPTINBLOGCOMMENT', '{config name=mail}', '{config name=shopName}', 'Bitte bestätigen Sie Ihre Blogartikel-Bewertung', '{include file=\"string:{config name=emailheaderplain}\"}\n\nHallo,\n\nvielen Dank für die Bewertung des Blogartikels „{$sArticle.title}“.\nBitte bestätigen Sie die Bewertung über den nachfolgenden Link:\n\n{$sConfirmLink}\n\n{include file=\"string:{config name=emailfooterplain}\"}', '\n {include file=\"string:{config name=emailheaderhtml}\"}\n \n \n Hallo,\n \n vielen Dank für die Bewertung des Blogartikels „{$sArticle.title}“.\n Bitte bestätigen Sie die Bewertung über den nachfolgenden Link:\n \n Blogartikel-Bewertung abschließen\n \n {include file=\"string:{config name=emailfooterhtml}\"}\n', 1, '', 2, 'NULL', 0);

(131, NULL, 'sOPTINREGISTERACCOUNTLESS', '{config name=mail}', '{config name=shopName}', 'Bitte bestätigen Sie Ihre E-Mail-Adresse für Ihre Bestellung bei {config name=shopName}', '{include file=\"string:{config name=emailheaderplain}\"}\n \nHallo,\n\nBitte bestätigen Sie Ihre E-Mail-Adresse über den nachfolgenden Link:\n\n{$sConfirmLink}\n\nNach der Bestätigung werden Sie in den Bestellabschluss geleitet, dort können Sie Ihre Bestellung nochmals überprüfen und abschließen.\nDurch diese Bestätigung erklären Sie sich ebenso damit einverstanden, dass wir Ihnen im Rahmen der Vertragserfüllung weitere E-Mails senden dürfen.\n\n{include file=\"string:{config name=emailfooterplain}\"}', '\n {include file=\"string:{config name=emailheaderhtml}\"}\n \n \n Hallo,\n \n Bitte bestätigen Sie Ihre E-Mail-Adresse über den nachfolgenden Link:\n \n Bestellung fortsetzen\n \n Nach der Bestätigung werden Sie in den Bestellabschluss geleitet, dort können Sie Ihre Bestellung nochmals überprüfen und abschließen.\n Durch diese Bestätigung erklären Sie sich ebenso damit einverstanden, dass wir Ihnen im Rahmen der Vertragserfüllung weitere E-Mails senden dürfen.\n \n {include file=\"string:{config name=emailfooterhtml}\"}\n', 1, '', 2, 'NULL', 0),

diese zwei Emailvorlagen haben Probleme gemacht, warum?

Braucht man die noch?