Cache Aufwärmen über Shopware Backend funktioniert nicht mehr...

Lieber Shopware Admins,

ich bekomme seit ein paar Wochen beim Versuch den Shopware Cache (HTTP Cache) via Backend aufzuwärmen folgende Fehlermeldung:

Ich habe alle Plugins überprüft und auf aktuellem Stand (Shopware Version 5.6.2) und sehe im PHP Error-Logfile nur das die Pfade nicht aufgebaut werden und alte Plugins gelöscht, die auch in der Zuordnung im Backend teilweise falsch waren. Also wenn ich im Backend auf ein Plugin geklickt habe, wurde ein anderes Plugin aufgerufen. Die Zuordnung habe ich durch die Neuinstallation aller Plugins wieder hergestellt. Doch hier weiß ich leider nicht mehr was ich tun kann.


PDOException: SQLSTATE(23000): Integrity constraint violation: 1048 Column ‘element_id’ cannot be null in /vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:1056 Stack trace:
#0 /vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(1056): PDOStatement->execute()
#1 /engine/Shopware/Bundle/PluginInstallerBundle/Service/UniqueIdGenerator/UniqueIdGenerator.php(96): Doctrine\DBAL\Connection->executeUpdate(‘INSERT INTO s_c…’, Array)
#2 /engine/Shopware/Bundle/PluginInstallerBundle/Service/UniqueIdGenerator/UniqueIdGenerator.php(57): Shopware\Bundle\PluginInstallerBundle\Service\UniqueIdGenerator\UniqueIdGenerator->storeUniqueIdInDb(‘MmgqPnQaIkDLtBJ…’)
#3 /engine/Shopware/Plugins/Default/Backend/SwagUpdate/Controllers/Backend/SwagUpdate.php(490): Shopware\Bundle\PluginInstallerBundle\Service\UniqueIdGenerator\UniqueIdGenerator->getUniqueId()
#4 /engine/Shopware/Plugins/Default/Backend/SwagUpdate/Controllers/Backend/SwagUpdate.php(268): Shopware_Controllers_Backend_SwagUpdate->getUnique()
#5 /engine/Library/Enlight/Controller/Action.php(192): Shopware_Controllers_Backend_SwagUpdate->popupAction()
#6 /engine/Library/Enlight/Controller/Dispatcher/Default.php(478): Enlight_Controller_Action->dispatch(‘popupAction’)
#7 /engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
#8 /engine/Shopware/Kernel.php(185): Enlight_Controller_Front->dispatch()
#9 /vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#10 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(448): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(Object(Shopware\Kernel), Object(Symfony\Component\HttpFoundation\Request), 1, true)
#11 /engine/Shopware/Components/HttpCache/AppCache.php(256): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
#12 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(238): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
#13 /engine/Shopware/Components/HttpCache/AppCache.php(99): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true)
#14 /home/users/h550476/public_html/grower-point.pl/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
#15


 

Vielen Dank im Voraus für jede Hilfe…

 

Hallo @grower_seiten‍,

hört sich danach an, als ob eine neue MySQL / MariaDB Version zum Einsatz kommt und eventuell der sql_mode auf STRICT_TRANS_TABLES steht?

Ihr könnt das direkt in MySQL / PHPMyAdmin mit dem folgenden Befehl prüfen:

SHOW VARIABLES LIKE 'sql_mode';

Wenn hier STRICT_TRANS_TABLES angezeigt wird, ist der Strict Modus aktiviert.

Um das Verhalten zu entschärfen, kann man folgendes eingeben:

set global sql_mode='';

Änderungen werden nur gespeichert, wenn Du direkten Zugriff auf den Datenbankserver hast. Falls das die Lösung war, solltet Ihr die Änderung noch in der my.cnf übertragen.

VG

ener Space  Webhosting
Tel.: +49 511 - 999 791 70 | Web: https://www.enerspace.de

Hallo enerSpace,

erstmal vielen Dank, ich verstehe das Problem, jedoch meine ich keine Maria Erweiterung bei der Installation der Datenbank gewählt zu haben.

VersionsInfo von phpMyAdmin:
    Apache
    Datenbank-Client Version: libmysql - mysqlnd 5.0.12-dev - 20150407
    PHP-Erweiterung: mysqliDokumentation curlDokumentation mbstringDokumentation

Die php.info gibt auch keine Maria DB Erweiterungen aus…!?

Dazu habe ich „nur“ ein normales Webhosting.

Die SQL Befehle in phpMyAdmin ergeben folgendes:

SHOW VARIABLES LIKE ‚sql_mode‘;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Also, Tatsache meine MySQL-DB ist schon ist im Strict Modus: 

STRICT_TRANS_TABLES

Beim Befehl:

set global sql_mode=‚ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;

erhalte ich:

#1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation
 

Muss der Befehl „global“ sein? dann muss ich wohl beim Provider nachfragen… 
Eine my.cnf kann ich leider nicht im Webpaket wohl nicht selber ändern.

Beim Versuch ohne global

set sql_mode=‚ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION‘;

kommt:

Warning: #3135 ‚NO_ZERO_DATE‘, ‚NO_ZERO_IN_DATE‘ and ‚ERROR_FOR_DIVISION_BY_ZERO‘ sql modes should be used with strict mode. They will be merged with strict mode in a future release.
 

Dennoch, danke nochmals, ich wäre da lange nicht drauf gekommen, wenigstens weiß ich jetzt in welche Richtung ich schauen kann…

Oder ist es sinnvoller eine neue Datenbank (Maria) zu installieren? Die Tabellen müsste ich doch komplett übernehmen können?

Vielen Dank,

grower_seiten

 

Hallo @grower_seiten‍,

mariaDB ist eine Alternative zu MySQL von Oracle. Es ist ein eigener Datenbankserver der Kompatibel zu MySQL ist.

Eine eigenen Datenbankserver kannst du nur installieren, wenn du allgemein Pakete auf deiner Linuxumgebun installieren darfst. Aber das ist auch nicht so einfach, wegen der Paketabhängigkeiten. Warscheinlich würdest du dir auch ebenso eine Version installieren die diese Option aktiviert hat.

Diese Einstellungen kann nur dein Anbieter vornehmen, sofern du dafür nicht die Rechte besitzt. Ich denke dass die Fehler danach behoben sind.

VG

ener Space  Webhosting
Tel.: +49 511 - 999 791 70 | Web: https://www.enerspace.de

Ihr seid auf den falschen Weg. Das hat nichts mit SQL_MODE zutun. Das ist ein simpler SQL Fehler: Ebenfalls wird der SQL_MODE von Shopware verwaltet, den muss man nicht selbst anpassen.
Der Fehler kommt erstaunlicherweise sehr oft. Da fehlt bloß ein Eintrag in der DB. Den kannst mit der Query hinzufügen

INSERT INTO s_core_config_elements (form_id, name, value, label, description, type, required, position, scope)
VALUES ('0', 'trackingUniqueId', 's:0:"";', 'Unique identifier', '', 'text', '0', '0', '1')

ABER: Der Fehler hat nichts mit den Http Cache Aufwärmen zutun.

Wärme mal den Cache mal in der Console auf. Dort solltest du, wenn es Probleme gibt direkt den Fehler kriegen. Meistens wird auch das Aufwärmen auf einer Testumgebung gemacht, wo ein Passwort Schutz vor ist. Das geht natürlich nicht

1 „Gefällt mir“