Migration-Assistent: Fehler bei Produkt-Migration

Hallo,

ich versuche, die Daten meines Online-Testshops in die Datenbank meines Docker-Entwicklungs-Systems (Dockware) mittels des Migration-Assistenten zu übetragen. Beide Systeme laufen unter Shopware 6.4.20.

Probleme habe ich beim Transfer der Produkte. Bei allen kommt folgende Fehlermeldung:

[error] SWAG_MIGRATION__WRITE_EXCEPTION_OCCURRED
A write exception has occurred
{
„entity“: „product“,
„dataId“: „3f05b7fd8844445eb41c33cc20caec0f“,
„error“: {
„code“: „FRAMEWORK__WRITE_CONSTRAINT_VIOLATION“,
„status“: „400“,
„detail“: „This field is write-protected.“,
„template“: „This field is write-protected.“,
„meta“: {
„parameters“: [
„system“,
„“
]
},
„source“: {
„pointer“: „/1/statesstates“
}
}
}

Es gibt ein JSON-Feld namens „states“ in der product-Tabelle, aber kein „statesstates“. Die Tabelle bleibt nach der Migration komplett leer.

Alle anderen Daten werden mirgiert.

Vor der Datenübertragung kommt eine Warnung, dass die Sprachen der beiden Systeme unterschiedlich sind. Kann das zu diesem Fehler führen?

Oder wo liegt der Hund begraben?

Vielen Dank für jede Hilfe!

Tschüß,
Frank

2 Likes

Same here diesmal beim Versuch einer Migration mit der Version 6.4.20.2 auf einen anderen Server.
Allerdings mit gleiche Konfiuration.

Wir versuchen jetzt seit einigen Wochen ebenfalls den Datenbestand aus einer Shopware 6.4 zu einer aktuellen Shopware-Version 6.5.3.3 Testumgebung zu migrieren und erhalten die selbe Fehlermeldung.

Bis auf die Produktkategorien werden, vermutlich durch die nachstehenden Fehlermeldungen, keine Daten in die Testumgebung übertragen.

Der betreffende Pointer scheint das Produktattribut für „physisches oder digitales Produkt“ zu sein - im Changelog zum Shopware Migrator wurden hier scheinbar mit NEXT-22545 in Version 5.1.0 Änderungen beim migrieren von Digitalen Produkten vorgenommen. (wir haben ausschließlich physische Produkte in der alten Shopware-Installation)

Wir haben die Migration ebenfalls schon mit einer älteren Version des Migration-Assistant (5.0) getestet, leider mit genau dem selben Ergebnis.

Hat hier niemand eine Idee, wo hier der Hund begraben liegt?

[error] SWAG_MIGRATION__WRITE_EXCEPTION_OCCURRED
A write exception has occurred
{
    "entity": "product",
    "dataId": "01899223a92b732eb557afd70282091a",
    "error": {
        "code": "FRAMEWORK__WRITE_CONSTRAINT_VIOLATION",
        "status": "400",
        "detail": "This field is write-protected.",
        "template": "This field is write-protected.",
        "meta": {
            "parameters": [
                "system",
                ""
            ]
        },
        "source": {
            "pointer": "\/28\/statesstates"
        }
    }
}

Hallo zusammen,
das hört sich nach einen generellen Fehler an, legt gerne ein Ticket im Issue-Tracker hierfür an.
Meine Vermutung: Bei der Migration von SW6 zu SW6 werden Data-Provider genutzt, die intern die DAL-Repositories nutzen und durch diese dann iterieren. Felder die Write-Proteced sind, müssen vor der Response herausgelöscht werden, sodass diese nicht genau zu solch einen Fehler führen.
Dies wurde anscheinend bei dem ProductProvider mit dem Feld „states“ nicht gemacht.

Hotfix dafür wäre somit: ProductProvider anpassen, sodass dieses Feld vor der Response gelöscht wird.
(DataProvider/Provider/Data/ProductProvider.php::45 hinzufügen von ''states" in das Array)

Mit freundlichen Grüßen

Krispin

1 Like

und gibt es bereits eine lösung? stehe vor dem gleichen problem, jemand eine lösung/idee/tipp …

danke schonmal

1 Like

Wir konnten das Problem mit der Anpassung im ProductProvider, wie von @Krispin vorgeschlagen, lösen!

Gleiches Problem - leider hilft der Hotfix von @krispin hier nicht.

Habt Ihr ‚states‘ (wie in der DB) oder ‚statesstates‘ (wie in der Fehlermeldung) in das Array aufgenommen?

Wir haben ‚states‘ in das Array mit aufgenommen

Vielleicht hilft das auch noch weiter:

Neben ‚states‘ mussten wir auch das Feld ‚streamIds‘ der Produktentitäten aus der Migration ausschließen.

und das vielleicht auch:
Wir hatten bei der Migration „weiter oben“ auch noch andere Fehler, die die Fehlersuche massiv erschwert haben - unter anderem beim Migrieren der Country-Entitäten:

Im Detail: das Feld default_postal_code_pattern für die Sprache GB/GBR

Hier wurde die Länge des Werts nicht validiert (zu lang) - unser Wert war die Standard-Shopware-Einstellung!

Das hatte die Folge das untergeordnete Entitäten (in diesem Fall also quasi alles) auch nicht migriert werden konnten.

Den Wert für default_postal_code_pattern für die Sprache haben wir in unserem Fall einfach aus der Datenbank entfernt. (wird in unserem Shop nicht benötigt)

Sollte die Migration unumgänglich sein (wie bei uns) lohnt es sich sicher die Log-Files des Migrationstools genauer zu untersuchen … bei Folgefehlern ist das kein schönes Unterfangen (5000 Zeilen mit dem selben Fehlerarten und irgendwo dazwischen die eine relevante Fehlermeldung) - hat uns schlussendlich aber alle nötigen Erkentnisse geliefert!

Viel Glück

Hi @dne ,

gerne solche Erkenntnisse als Verbesserungsvorschläge in Tickets verarbeiten, dann kann das Migrations-Team schauen, was sie umsetzen können :blush: :blue_heart:

Gruß

Krispin

Hallo dne, hier hat es nun doch geklappt.
Problem war, dass ich die Änderungen in der Zielinstallation vorgenommen hatte.
Nach dem ich die Änderungen in der Quellinstallation nachgezogen hatte, hat es dann doch funktioniert.

Hallo,

Ich habe das gleiche Problem. Ich versuche ebenfalls von Version 6.4 auf die neueste Version zu migrieren, aber es funktioniert nicht wie erwartet. Es gibt viele Updates, und der Migrationsassistent wird zwar ständig aktualisiert, aber anscheinend hören die Shopware-Entwickler nie auf unsere Anliegen.

Ich habe bereits die von euch vorgeschlagene Lösung ausprobiert, jedoch konnten nur 50 von mehr als 400 Produkten migriert werden, und ich konnte keine Bestellungen oder Kundendaten importieren.

Hat jemand eine Idee, wie dieses Problem gelöst werden kann?

Gruß