Foreign Keys reparieren

Hallo,

ich hänge hier gerade am Update 6.5.8.7 auf 6.5.8.8.

Im Update-Prozess hängt es hier:

Run Post Update

Get collection for identifier: "core"
migrate Migrations
 0/2 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░]   0% < 1 sec/< 1 sec 103.0 MiB08:03:19 ERROR     [app] Migration: "Shopware\Core\Migration\V6_5\Migration1707807389ChangeAvailableDefault" failed: "An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1553 Cannot drop index '': needed in a foreign key constraint"
 ---------- ---------------------- 
  Action     Number of migrations  
 ---------- ---------------------- 
  Migrated   0 out of 2            
 ---------- ---------------------- 

Jetzt habe ich in der Migration1707807389ChangeAvailableDefault.php nachgeschaut, was hier gemacht werden soll:

$connection->executeStatement('ALTER TABLE `product` CHANGE `available` `available` tinyint(1) NOT NULL DEFAULT \'0\';');

Dann habe ich der product Tabelle nachgeschaut und festgestellt, dass hier ein leerer foreign key existiert. Jetzt könnte ich den löschen und dann nochmal probieren. Aber ich fürchte, dass hier noch mehr fehlt und vielleicht andere foreign keys bei irgendeinem vorherigen Update verloren gegangen sind. Dasselbe Problem habe ich auch in 3 anderen Instanzen :frowning:

Gibt es ein Tool, um in Shopware 6 für die jeweilige Shopware-Version die foreign keys zu reparieren? Im Forum habe ich Beiträge zu SW5 gesehen. Da gab es das scheinbar. Aber zu SW6 hab ich nix gefunden.

Oder gibt es irgendwo die offiziellen Tabellen-Definitionen für die einzelnen SW6 Versionen? Aus der ich mir dann ggf. fehlende ForeigenKeys wieder rekonstruieren könnte?

Vielen Dank im Voraus

PS: Mal noch eine generelle Frage. Ich habe (wie ihr an der Version sehen könnt) eine Weile keine Updates gemacht. Aktuelle Version ist 6.6.6.1. Würdet ihr da jedes einzelne Update ausführen, also 6.5.8.8, 6.5.8.9. 6.5.8.10, …? Oder kann man auch größere Sprünge machen? Aber dann passiert vermutlich genau sowas, dass dann irgendwo ein index oder foreign key fehlt … oder Schlimmeres :frowning:
Wie macht ihr das mit den Updates?

Sorry, ich hab mich verguggt. Es existiert kein leerer Foreign Key in der tabelle products.

Ich kann den Befehl

ALTER TABLE `product` CHANGE  `available` `available` tinyint(1) NOT NULL DEFAULT '0';

auch nicht direkt in der Workbench aufrufen. Da bekomme ich denselben Fehler:

Error Code: 1553. Cannot drop index '<unknown key name>': needed in a foreign key constraint

Ich hab auch testweise mal versucht, bei der Spalte available_stock den default-Wert von NULL auf 0 zusetzen. Gleicher Fehler :frowning:

Ich finde nicht, wo hier das Problem liegt. Ich weiß nicht, wo ich ansetzen soll … unkown key name …

Bin für jede Idee dankbar.

Falls es jemandem hilft:

Es lag an der mySQL-Version 8.4. Die hatte ich aus Versehen installiert, aber die ist wohl nicht mit Shopware kompatibel, weil sie bei foreign-keys ohne Zusatz-Konfiguration wohl zu restriktiv ist. Hab jetzt wieder auf mySQL 8.3 downgegradet, dann kam der Fehler nicht mehr.

Dieses Thema wurde automatisch 30 Tage nach der letzten Antwort geschlossen. Es sind keine neuen Antworten mehr erlaubt.