1062 Doppelter Eintrag '0-1' für Schlüssel 'element_id_shop_id'

Hallo, bekomme beim Update auf 5.5.8 folgende Fehlermeldung

Migration konnte nicht angewendet werden (Migrations_Migration1457). Fehler: SQLSTATE [23000]: Verletzung der Integritätsbedingung: 1062 Doppelter Eintrag ‘0-1’ für Schlüssel ‘element_id_shop_id’ 

Bitte versuchen Sie, diesen Fehler zu beheben, und starten Sie das Update erneut.

Antwort

 {"gültig": false, "errorMsg": "Migration konnte nicht angewendet werden (Migrations\_Migration1457). Fehler: SQLSTATE [23000]: Verletzung der Integritätsbedingung: 1062 Doppelter Eintrag '0-1' für Schlüssel 'element\_id\_shop\_id'"}

Wo kann ich diesen Eintrag in der DB finden und was genau soll ich dann dort löschen ???

Ich habe auch schon die tabelle “s_core_config_elements” angeschaut - konnte dort aber nichts finden - jemand eine Idee ?

 

Wir hatten gestern das gleiche Problem!

Haben die Damen und Herren von der Shopware-Abteilung eine Idee? Foot-in-Mouth

Vielleicht mal in die Datei schauen und mit der eigenen Datenbank vergleichen:

\update-assets\migrations\1457-add-minsearch-index-length.php

 

Danke für die Antwort aber von DB habe ich sehr wenig Ahnung…Ich habe mir die Datei (1457_add-minsearch-index-lenght.php) angeschaut - kann aber in der s_core_config_values keinen doppeleten Eintrag finden. 

Was mache ich falsch oder besser gefragt - hat jemand eine Lösung dafür ???

Hat denn niemand eine Lösung ? In der 1457 steht folgendes

 if ($modus === self::MODUS_UPDATE) {
            $sql = „INSERT INTO s_core_config_values (element_id, shop_id, value)
                    SELECT 
                      @elementId,
                      id,
                      ‚i:0;‘
                    FROM s_core_shops
                    WHERE id NOT IN (SELECT shop_id FROM s_core_config_values WHERE element_id = @elementId)“;
            $this->addSql($sql);
 

In der besagten Migration gibt es dieses Select:

SELECT element.id FROM s_core_config_elements element WHERE element.name = "minSearchIndexLength" LIMIT 1

Eventuell mal dieses Select bei euch im Shop ausführen und schauen ob die ID schon in „s_core_config_values“ vorhanden ist. Bei mir im Testshop ist das die ID 4203.

MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze) - was kann ich jetzt tun ?

Hm, komisch … eure Datenbank kaputt? Das sind eigentlich Einstellungen von der Suche.

was kann ich jetzt tun

Die MySQL Query aus der Migration1457 manuell durchgehen bzw. in der Datenbank vergleichen. Wenn etwas fehlt dann anlegen. Ist zwar Fummelarbeit, aber lässt sich halt nicht ändern.

Ich will das Thema nochmal aufgreifen. Wir haben nämlich das gleiche Problem

Wenn ich mir die Migration1457 mal ansehe, dann fällt mir darin auf, dass die Variable @element_id aus einer SELECT-Abfrage gefüllt wird.

Im unteren Abschnitt, da wo es darum geht per INSERT die s_core_config_values zu beschreiben, ist aber von der Variable @elementId die Rede (es fehlt der Unterstrich). Das würde bedeuten, dass eine nicht definierte Variable verwendet wird, diese dann den Wert 0 erhält und es dewegen zum Fehler kommt. Weil eben dann die Kombination 0-1 bereits existiert und das eine UNIQUE CONSTRAINT Fehlermeldung auswirft.

Kann meine Annahme so jemand bestätigen?

Gruß Klaus

Also, das Kätzchen schnurrt wieder. Den Namen der Variablen angepasst, und das Update läuft durch.

Den Bug hab ich gerade gemeldet!

@Klaus215‍ Kannst du bitte die Ticketnummer oder einen Link zum Ticket posten. Danke.