Migation von 5.4 nach 6 übernimmt kaum Daten

Hallo zusammen,

ich versuche für unseren Shop gerade die Migration von 5.4 nach 6 durchzuführen. Dies funktioniert allerdings eher bescheiden. Bestellungen und Kunden werden fast komplett übernommen, aber bei den Produkten sind es von knapp 2900 nur etwas weniger als 200.

Leider tu ich mir sehr schwer aus den Logfiles schlau zu werden. Ich hab auch schon einmal versucht mir die swag_migration_*-Tabellen anzuschauen, kann dort aber das eigentlcihe Problem, warum ein Produkt nicht übernommen wird auch nicht herauslesen.

Wie geht ihr denn vor bei der Fehlersuche?

Beispiele von Fehlermeldungen:
[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product, sourceId: 018ce4c2cfa372079c76d1444f623a6e
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 (w9m9js46_atlas.product, CONSTRAINT fk.product.parent_id FOREIGN KEY (parent_id, parent_version_id) REFERENCES product (id, version_id) ON DELETE CASCADE ON UPDATE CASCADE)

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product_option_relation, sourceId: 018ce4c6d0fb7049a907214f1e0e6e57
There are 5 error(s) while writing data.1. [/0/taxId] Dieser Wert sollte nicht leer sein.1. [/0/price] Dieser Wert sollte nicht leer sein.1. [/0/productNumber] Dieser Wert sollte nicht leer sein.1. [/0/stock] Dieser Wert sollte nicht leer sein.1. [/0/translations/2fbb5fe2e29a4d70aa5854ce7ce3e20b/name] Dieser Wert sollte nicht leer sein.

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product_option_relation, sourceId: 018ce4c6d0fb7049a907214f1f0df703
There are 5 error(s) while writing data.1. [/0/taxId] Dieser Wert sollte nicht leer sein.1. [/0/price] Dieser Wert sollte nicht leer sein.1. [/0/productNumber] Dieser Wert sollte nicht leer sein.1. [/0/stock] Dieser Wert sollte nicht leer sein.1. [/0/translations/2fbb5fe2e29a4d70aa5854ce7ce3e20b/name] Dieser Wert sollte nicht leer sein.

[error] SWAG_MIGRATION__WRITE_EXCEPTION_OCCURRED
A write exception has occurred
{
„entity“: „product_option_relation“,
„dataId“: „018ce4c6d0fb7049a907214f1f5c4265“,
„error“: {
„code“: „c1051bb4-d103-4f74-8988-acbcafc7fdc3“,
„status“: „400“,
„detail“: „Dieser Wert sollte nicht leer sein.“,
„template“: „This value should not be blank.“,
„meta“: {
„parameters“: {
„{{ value }}“: „null“
}
},
„source“: {
„pointer“: „/0/translations/2fbb5fe2e29a4d70aa5854ce7ce3e20b/name“
}
}
}

Vielen Dank
Gerhard

Hallo Gerhard,

hast du das mittlerweile lösen können? Ich steh vor dem gleichen Problem :sleepy: über 54.000 dieser „foreign key constraint fails“ Fehler.

Wo anders habe ich gelesen dass es helfen soll wenn man die Fremdschlüsselprüfung in der Datenbank deaktiviert. Hat bei mir nur nichts gebracht :expressionless:

Vielleicht kann uns @Mercator hier weiterhelfen? :pray:t2:

Da müsste man sich von einem Fehler mal über das Mapping zum Ursprungsprodukt in SW5 durchforsten und das genau prüfen. Irgendwo fehlen dort Daten und/oder Verknüpfungen. Vermutlich liegt es gar nicht am Produkt selber, sondern an einem fehlenden, verknüpften Datensatz. Zum Beispiel Steuersatz oder Shop/Verkaufskanal.

Nein, ich habe bisher leider keine Lösung, bin aber für jeden Tipp dankbar.

Eines habe ich herausgefunden: bei Mediendateien, die in der DB stehen aber im Filesystem nicht vorhanden sind wird die Übernahme auch abgebrochen.

Eventuell eine nicht kompatible Datenbankversion? Gleiches Problem hatten wir auch.
Nicht jede MYSQL und Maria DB Version ist mit jeder SW6 Version kompatibel. Nachdem
wir damals die Datenbank gewechselt haben, wurden die Daten vollständig übernommen.
Vorher waren wir auch fast am verzweifeln, weil die Migration immer entweder abgebrochen
wurde oder durchlief und dann viele Daten gefehlt haben.

Ich habe hier mySQL 5.7 für den 5er Shop und 8.0 für den 6er Shop. Welche hattet/habt ihr denn im Einsatz?

Leider gibt es bei Shopware 6 keine „pauschale“ Kompatibilität von MySQL 8.0.
Die Kompatibilität ist abhängig von der Shopware 6 Version.

Welche Datenbankversion zu den jeweiligen SW6 Versionen passt, findest Du unter

in den Systemvoraussetzungen (rechts die Version auswählen). Hier ist dann jeweils
aufgeführt, welche Datenbankversionen kompatibel sind und bei welchen es Probleme
gibt.

Das Problem werden wohl (leider) viele haben. Die Fehlermeldungen sind leider nicht immer eindeutig. Nach mittlerweile mehreren Migartionen kann ich sagen, dass es mehrere Faktoren sein können, warum eine Migration nicht geht. Angefangen von fehlerhaften Verknüpfungen bis hin zu inkorrekten Daten im Quellsystem.

Bei einer Migration hatte ich solche Fehler auch, zu hundertfach. Optisch sah es im SW5 Shop, also im Qullsystem, ganz normal aus. Preis etc. stand alles drin. Tagelang nach der Ursache gesucht, warum die Produkte nicht übernommen werden. Dann nur mal aus Spaß, das Produkt im SW5 System auf speichern geklick und eine neue Migration durchgeführt. Plötzlich wurde das Produkt übernommen.

Diesen Fall hatte ich hier erwähnt:
=> Migration Error product_option_relation

Solche Meldungen passieren oft, wenn Verknüpfungen fehlen. Über die sourceId muss man das in Detektivarbeit analysieren.

Ein Problem mit der DB halte ich hier aber ausgeschlossen. Erst recht wenn Hinweise auf sourceId kommen. Das deutet immer darauf hin, dass zwar der Datensatz aus dem SW5 übernommen wurde, im Mapping vom SW6 gespeichert wurde, aber dann nicht mehr schreiben konnte, wiel die Daten unsauber sind. Das muss nicht zwangsläufig an der DB Version liegen.

Einen Fehler in der alten DB habe ich jetzt gefunden, und er betrifft immer Variantenartikel.

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product, sourceId: xxxx
Parent entity for „product: yyyy.z“ child not found.

in der SW5-DB steht in der articeles_details-Tabelle bei der Hauptvariante als kind „2“, bei einer Untervariante „1“. Es muss aber genau umgekehrt sein. Nach der Änderung werden die Artikel bei mir übernommen.