Hallo,
ich bin dabei ein Update von Contao 3.2.16 mit Isotope 2.1.9 auf das aktuelle Contao 3.5.33 mit Isotope 2.4.5 (Testumgebung auf dem Server mit gleichen Einstellungen wie beim laufenden produktiven System, Verwendung des ER2) durchzuführen.
Nach dem erfolgreichen Contao-Update habe ich alle Erweiterungen aktualisiert. Dabei wurde mir über die Erweiterungsverwaltung das Isotope-Update ("Version xyz verfügbar") NICHT angeboten. Warum?
Ich habe jedenfalls dann in der Erweiterungsverwaltung über "Erweiterung installieren" Isotope 2.4.5 inkl. der nötigen anhängigen Erweiterungen installiert. Dies führte zu einem "Gateway Timeout" Fehler.
Habe dann über das Installtool die Datenbank aktualisiert, dabei kamm es zu folgendem Fehler:
Code:
Fatal error: Uncaught exception Exception with message Query error: Duplicate entry '' for key 'uniqid' (ALTER TABLE `tl_iso_product_collection` ADD UNIQUE KEY `uniqid` (`uniqid`);) thrown in system/modules/core/library/Contao/Database/Statement.php on line 295
#0 system/modules/core/library/Contao/Database.php(207): Contao\Database\Statement->query('ALTER TABLE `tl...')
#1 system/modules/core/controllers/BackendInstall.php(619): Contao\Database->query('ALTER TABLE `tl...')
#2 system/modules/core/controllers/BackendInstall.php(181): Contao\BackendInstall->adjustDatabaseTables()
#3 contao/install.php(20): Contao\BackendInstall->run()
#4 {main}
Dieser Fehler wird wohl verursacht von folgendem DB-Änderungs-Befehl:
Code:
ALTER TABLE `tl_iso_product_collection` ADD UNIQUE KEY `uniqid` (`uniqid`);
Das Feld "uniqid" soll also ein "UNIQUE KEY" werden. Habe mir daraufhin die DB angeschaut. Das Feld uniqid enthält für alle Bestellungen (type = oder) jeweils unterschiedliche Einträge.
Es gibt jedoch auch Zeilen mit type = cart statt type = order - das sind wohl Warenkörbe, die befüllt wurden, aber die Bestellung nicht abgeschlosssen wurde. Dort ist das Feld uniqid leer.
Das führt wohl dazu, dass der obige ALTER TABLE Befehl nicht ausgeführt werden kann (Duplicate entry). Oder sehe ich das falsch?
Ist dieses Problem bekannt bzw. gibt es eine Lösung?
Was würde passieren, wenn man alle Zeilen mit type = cart löscht? Die unabgeschlossenen Warenkörbe müssten ja nicht unbedingt weiter gespeichert werden. Dann sollte ja der ALTER TABLE Befehl klappen.
Darf man diese Zeilen einfach löschen oder gibt es dann ungewollte "Nebenwirkungen"?
Bin für jeden Hinweis dankbar!
Danke, Steve
Lesezeichen