Probleme mit Migration: Integrity constraint violation

Bei einer Migration werden hunderte Kategorien einfach nicht übernommen. 3 unterschiedliche Mitarbeiter vom Shopware Support konnten mir bisher keine Auskunft darüber bringen, woran das liegen könnte. Etliche Mails im Ticket gingen hin und her, ohne nur Ansatzweise eine Ursache zu finden.

Im Migrationslog stehen hunderte Zeilen wie:

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product, sourceId: bdd990ee503f4382a70a797d1cca2b4a
An exception occurred while executing 'REPLACE INTO `product_category` (`product_id`, `product_version_id`, `category_id`, `category_version_id`) VALUES ('Vmv,@;*]2','jKKu,4%','h^.3I@pQH5QM','jKKu,4%');':SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`sw6b_test`.`product_category`, CONSTRAINT `fk.product_category.category_id` FOREIGN KEY (`category_id`, `category_version_id`) REFERENCES `category` (`id`, `version_id`) ON DELETE CASCADE ON )

Der Shopware Support konnte bisher auf diese Fehler keine Erklärung liefern :frowning:

Der SQL Fehler ist eindeutig: foreign key constraint

Da wird versucht eine Unterkategorie anzulegen, obwohl die Oberkategorie noch nicht existiert.
Vermutlich sind das Folgefehler, da beim erstellen der Oberkategorie ein Fehler aufgetreten ist.

Müsste man im (SQL) Log schauen, was das Problem ist.

Hm, ausgerechnet dieser Punkt ist fast nicht möglich.

Logging des SQL Servers aktivieren und dann nach der ID suchen. Eventuell wird der Fehler aber auch im Shopware Log protokolliert.

foreign key constraint würde ich in SQL nicht deaktivieren, da die Daten sonst aller Wahrscheinlichkeit nicht konsistent sein würden.

Hallo R4M

Konntest Du das Problem lösen?

Ich habe eine ähnliches Problem, einfach mit Bestellungen.

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: order, sourceId: 018e7a47f984738981db15370d580125
An exception occurred while executing a query: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (usrdb_vsavrbrb3.order_delivery, CONSTRAINT fk.order_delivery.shipping_method_id FOREIGN KEY (shipping_method_id) REFERENCES shipping_method (id) ON UPDATE CASCADE)

Hallo,

ja konnte ich. Sieht wohl so aus, dass eine Bestellung nicht angelegt werden konnte, weil die benutzte Versandart nicht mehr existiert. Hatte bei Migrationen hunderte solcher Fälle. Musste im Quellshop per SQL alle Bestellungen heraussuchen, die keine Versandart oder Bezahlart mehr haben. Habe diese dann einem Dummyeintrag (zuvor erstellt) zugewiesen. Dann klappte es.

Hallo

Vielen Dank schon mal.

Habe ich eigentlich schon gemacht, aber ich schaue nochmals drüber. Vor dem geistigen Auge habe ich mich schon mal auf Arbeit an Ostern eingestellt. :slight_smile:

Kannst ja mal versuchen, in der Tabelle „swag_migration_data“ nach der sourceId 018e7a47f984738981db15370d580125 zu suchen und dann in der Spalte „raw“ nach der genauen Bestellung zu analysieren => „shippingMethod“ auslesen.

Nochmals besten Dank. Schaue ich mal rein.

Ich sehe, Du bist Profi-Migrierer. :+1:

Hi @R4M,

der von dir angemerkte Fehler fällt bei der Migration von Produkten auf und besagt, dass einer der zugehörigen Kategorien nicht vorhanden ist. Somit ist dies ein Folgefehler daraus, dass (wie du schon erwähnt hast) die Kategorien nicht migriert werden können.

Was meist bei solchen Folgefehlern hilft ist: In der swag_migration_logging Tabelle aufsteigend nach created_at zu sortieren und sich nur den letzten Migration-Run anzeigen zu lassen, dann solltest du einen Fehler beim Schreiben der Kategorien finden.

Ich hoffe dies hilft dir weiter.

Gruß

Krispin

Der ursprüngliche Beitrag ist vom letzten Jahr. Inzwischen habe ich ein ganzes Rudel an Migrationen hinter mir und wahrlich reichlich viele Erfahrungen gesammelt.

1 „Gefällt mir“