Migration 5.7 -> 6.7.11 übernimmt Kunden aus Subshop nicht

Hallo,

ich versuche für einen Kunden eine Shopware Installation von 5.7.18 auf 6.7.11.0 zu migrieren.
Es gibt zwei Shops:

Hauptshop für Endkunden
Subshop für Händler

Er legt zwar korrekt beide Verkaufskanäle an, a ber leider übernimmt der Migration Assistant die Kunden aus dem Subshop nicht.

Ich erhalte für die Subhop / Händlerkunden folgende Fehlermeldung:

ID: 019eef8cf39f71cfb734abdee5ef542b
Level: error
Code: SWAG_MIGRATION_WRITE_EXCEPTION
Profile name: shopware57
Gateway name: api
Created at: 2026-06-22 13:37:32.579
Entity: customer
Exception message: There are 1 error(s) while writing data.

1. \[/languageId\] The language "019eeeab050a72c09c8170ec9eb30ca0" is not assigned to the sales channel. in /html/shopware6/vendor/shopware/core/Framework/DataAbstractionLayer/Write/WriteContext.php:46

Ich habe eine komplette neue Installation, wo ich nur die nötigen Grundeinstellungen und Bezahlarten installiert habe und sonst noch nichts umgestellt habe.

Kennt jemand das Problem und hat Abhilfe?
Danke
Sebastian

Wie die Fehlermeldung deutlich sagt, fehlt die entsprechende Sprache. Kann das im Mapping nicht ausgewählt werden?

Nein. Mapping für Sprachen habe ich nicht gesehen.
Das hat SW alles selbst eingestellt.

Nach der Fehlermeldung mal diese Verkaufskanäle auf Richtigkeit überprüft? Also ist dort die Sprache korrekt gesetzt? Ist die benutze Sprache unter den Einstellungen->Sprache auch aktiv? Laut der Fehlermeldung ist da etwas nicht korrekt zugeordnet.

Fazit: Verkaufskanäle + Sprache in SW6 kontrollieren, ggf. anpassen, Migration mit Kunden noch einmal durchlaufen lassen.

Das habe ich alles X-Mal geprüft.
Bei beiden Verkaufskanälen ist Deutsch als Sprache hinterlegt.
Auch im Quell-Shop habe ich alle Einstellungen geprüft.

Auch in der Datenbank habe ich die IDs geprüft. Es gibt keine Sprache mit der ID 01960fe6472772fbacf364905998350d. Keine Ahnung, wie die Migration das herholt.

Es ist zum verzweifeln.

@der-seb Die gab es aber mal. Jetzt kannst Du mehrere Dinge probieren (natürlich nach Backup), z.B. überall wo in SW5 diese Sprache mit der ID …350d auftaucht eine andere einsetzen. Das kann klappen.

Konkret: Backup SW5 und SW6, db SW5 manipulieren, Testimport, db SW5 wieder manipulieren, Testimport usw., wenn erfolgos Backup in SW6 einspielen, auf jeden Fall Backup SW5 einspielen.

Anmerkung: Die iD kommt von SW6, nicht SW5, nicht das es hier Mißverständnisse gibt :slight_smile:

Frage: Wurde die Verkaufskanäle durch die Migration angelegt oder hast du sie angelegt?

In der Regel ist es so:
Man installiert einen SW6 und definiert einen temporären Verkaufskanal. Hier macht man dann nur grobe Einstellungen, so dass der SW6 läuft. Durch die Migartion werden dann die Verkaufskanäle von SW5 in SW6 angelegt - bedeutet, dass dann 3 Verkaufskanäle eigentlich zu sehen sein müssten. Dieser Zustand muss auch so lange bleiben, bis die Migartion sauber abgeschlossen ist. Wurde hier während der Migration die Verkaufskanäle angepasst oder verändert?

Mit selber ist kein Fall bekannt, wo SW6 unbvekannte Sprachen einen Verkaufskanal zugeordnet hat. Alles hat immer irgendwie eine Ursache.

Die Fehlermeldung mit der languageId ist oftmals schwer zu debuggen. Es kann auch sein, dass einer verknüpften Entität diese Sprache zugeordnet ist. Beispielsweise gibt es beim Kunden auch die languageId.

Ich würde mal die Logs durchsuchen, wo die languageId alles auftaucht.

Ansonsten die (Dummy-)Sprache mal manuell mit der ID in der Datenbank anlegen.

Wir sind inzwischen übergegangen und haben/schreiben eigene Migrationsskripte.

Ich habe für meine Tests eine komplett frische SW6 Installation genommen. Wirklich nur die wichtigsten Einstellungen gemacht und dann die Migration durchgeführt.
Ich werde mir mal die Datenbank-Tabellen der Migration vornehmen müssen.

Genau. SW5 hat ja m.W. nur „einfache“ Zahlen als ID. Keine HEX-Werte, wie SW6…

Das wird während der Migration gemappt SW5-ID => SW6-UUID

Mache einen Dump der SW5 Datenbank, ggf. teilen, wenn zu groß, und dann suche auf der CLI per grep nach der UUID. Dann wirst du vermutlich das Problem finden.