Datenbankfehler bei Update auf 6.4.11.0

Error
Received the following error message:
An exception occurred while executing ‚ALTER TABLE product_tag DROP FOREIGN KEY fk.product_tag.tag_id;‘: SQLSTATE[42000]: Syntax error or access violation: 1091 Can’t DROP FOREIGN KEY fk.product_tag.tag_id; check that it exists

Please try to fix this error and restart the update.
Response
{„valid“:false,„errorMsg“:„An exception occurred while executing ‚ALTER TABLE product_tag DROP FOREIGN KEY fk.product_tag.tag_id;‘:\n\nSQLSTATE[42000]: Syntax error or access violation: 1091 Can’t DROP FOREIGN KEY fk.product_tag.tag_id; check that it exists“}

Selber Fehler passiert auch bei Update auf 6.4.11.1 :frowning: wieder Backup aufspielen–heul

Error

Received the following error message:
An exception occurred while executing ‚ALTER TABLE product_tag DROP FOREIGN KEY fk.product_tag.tag_id;‘: SQLSTATE[42000]: Syntax error or access violation: 1091 Can’t DROP FOREIGN KEY fk.product_tag.tag_id; check that it exists

Please try to fix this error and restart the update.

Response

{„valid“:false,„errorMsg“:„An exception occurred while executing ‚ALTER TABLE product_tag DROP FOREIGN KEY fk.product_tag.tag_id;‘:\n\nSQLSTATE[42000]: Syntax error or access violation: 1091 Can’t DROP FOREIGN KEY fk.product_tag.tag_id; check that it exists“}

Hast du von einer lange zurück liegenden Version aktualisiert? Überprüfe auch, ob deine MySQL-Version den Anforderungen entspricht.

  • MySQL 5.7.21 oder höher
    Die MySQL Versionen 8.0.20 und 8.0.21 sind auf Grund von technischen Problemen in diesen Versionen nicht kompatibel.

oder

  • MariaDB 10.3.22 oder höher
    Die MariaDB Versionen 10.3.29, 10.4.19 und 10.5.10 sind auf Grund von technischen Problemen in diesen Versionen nicht kompatibel.

Als kruder Hack kannst du nach dem Statement suchen und es ausmerzen oder fixen. grep -F "ALTER ABLE product_table DROP FOREIGN KEY fk.product_tag.tag_id" -r . vom Shopware-Ordner aus, um die Datei zu finden. Falls nichts dabei herauskommt, wird das Statement irgendwie zusammengebaut. Irgendwo tief im Quellcode-Wald sind die Dateien für DB-Migrationen. Kämpfe dich durchs Unterholz, bis du den Übeltäter gefunden hast.

Hi, danke für Deine Antwort und nein, meine letzte Version ist 6.4.10.0

hmm ich komm nicht auf den Fehler, aber mein Php ist 7.4.29 und SQL Maria DB10.5.15

Hmm, hab den Fehler noch nicht gefunden- hat noch jemand diese Probleme bzw. eine praktikable Lösung für einen aktiven Shop?

Das hat oft was mit den Plugins zu tun, man sollte lieber nicht gleich ein System Update von Shopware 6 durchführen, denn meine Beobachtung ist: Erst nach 1-2 Wochen sind fast alle Plugins auf den neuesten Stand, wenn dann z.B. nur ein Plugin noch nciht soweit ist, kann man es vor dem System Update deaktivieren und nach dem Update wieder aktivieren, denn sollte es danach ein problem geben, dann weiß man schon eher , dass es an diesem Plugin liegt, aber wenn 3-4 Plugins noch nciht so weit sind, dann kann man die Fehlerquelle nciht gleich auf ein ebsteimmtes Plugin zurückführen. Außerdem finde ich es von Shopware 6 nicht gut, dass man ein System update anbietet, obwohl einige Plugins noch eien Aktualisierung benötigen. Es ist auch so, dass nach 5 tagen plötzlich bereit sind für das Plugin, da sollte man schon dem User irgendwie klar machen, dass das System Update, welches ja im backend vorgeschlagen wird, jetzt ein aufgefrischtes system Update ist, was aber natürlich noch die gleiche Seriennummer hat, das irrtiert udn was erfährt man nur wenn man auch alnge mit Shopware arbeitet, aber für neue Anweder kann das alles schon problematisch werden…

Hallo @autostar-handel,

mit der Version 6.4.11.0 wird in platform/Migration1642517958AddCascadeDeleteToTagRelations.php at v6.4.11.0 · shopware/platform · GitHub der genannte Foreign Key entfernt.

ich vermute, dass durch das Update der Key bei dir entfernt worden ist und anschließend ein Fehler aufgetreten ist. Wenn jetzt weiterhin versucht wird das Update erneut einzuspielen, tritt der genannte Fehler auf, da versucht wird etwas zu entfernen, was nicht mehr existiert.

Du hast hier zwei Möglichkeiten. Entweder erstellt zu den Foreign Key in der Tabelle product_tag wieder her oder
du lädst dir das Update ZIP herunter, entfernst den entsprechende Eintrag aus der Datei, erstellt eine neue ZIP und führst das Update mit der neuen ZIP Datei aus.

vg
abdullah

Hallo, danke für die Tipps! :slight_smile: —da ich aber leider noch nicht so ganz in der Dateistruktur durchblicke, wo in der update.zip sind die Datenbankänderungen? Für Hilfe wäre ich sehr dankbar lg Peter

Hallo @autostar-handel

am einfachsten ist es, wenn du den Constraint wieder hinzufügt. In der Datenbank (über Adminer o. ä.) folgenden Befehl ausführen:

ALTER TABLE product_tag ADD CONSTRAINT fk.product_tag.tag_id FOREIGN KEY (tag_id) REFERENCES tag (id) ON DELETE CASCADE ON UPDATE CASCADE;

Dann sollte das Problem mit dem Constraint Fehler nicht mehr auftauchen.

vg

Hallo, vielen Dank-aber ich bekomme folgende Meldung:

versuch es Mal mit den Anführungszeichen:

ALTER TABLE `product_tag` ADD CONSTRAINT `fk.product_tag.tag_id` FOREIGN KEY (`tag_id`) REFERENCES `tag` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

vg

Hallo, lieber Abdullah!

autsch, da hätte ich auch draufkommen müssen mit den Anführungszeichen, bin schon eingerostet xd.

Hab es heute probiert und musste es bei insgesamt 8 Tabellen auf diese Art machen, nun ist das Update erfolgreich gewesen, vielen Dank :slight_smile:

Es betraf diese Tabellen: product_tag, order_tag, category_tag, customer_tag, landing_page_tag, media_tag, newsletter_recipient_tag, shipping_method_tag

lg
Peter Baumeister

1 „Gefällt mir“

genau so war es bei mir auch - überall hinzugefügt - funktioniert. Aber nervig bei fast jedem Update…

Hallo,

ich muss auch etwas importieren - wenn ich das mache geht es aber nicht er sagt auch das da schon nen key exisitiert bei der Installation bricht er aber ab und sagt ich soll gucken ob der Key existiert.

ALTER TABLE product_tag ADD CONSTRAINT fk.customer_address.salutation_id FOREIGN KEY (tag_id) REFERENCES tag (id) ON DELETE CASCADE ON UPDATE CASCADE;

habe es mit Anführungszeichen versucht.