Probleme bei Migration von SW5 zu SW6

Hallo liebe Community,

gestern habe ich die Shopware 6 Community Edition auf einem DigitalOcean Droplet installiert, das Migrationsplugin installiert und den alten Shopware 5 Shop per API Zugriff migrieren lassen.

Die Migration lief soweit durch, ich musste noch ein paar manuelle Zuweisungen machen und dann der Schock:

:warning: Von den fast 700 Produkten sind grade einmal 130 vorhanden.
:warning: Von den fast 10000 Bestellungen sind nur ca. 6000 vorhanden.
:warning: Ca. 8500 von 8600 Kunden sind vorhanden.
:white_check_mark: Die Kategorien wurden, soweit ich das sehen kann, volständig migriert.
:white_check_mark: Der Rest ist eigentlich egal.

So. Nun habe ich mir den Migrationslog einmal angesehen.

Hier mal ein paar Indizien was schiefgelaufen sein könnte:

Inkorrekte Werte für DateTime Objekt ‚created_at‘

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product, sourceId: bd954aee394c4057ba35a85eb81f9253
An exception occurred while executing 'INSERT INTO `product` (`id`, ..., `created_at`) VALUES ('rALIAjn>', ... ,'-0001-11-30 00:00:00.000');':SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '-0001-11-30 00:00:00.000' for column 'created_at' at row 1

Irgendwelche leeren Felder bei Produkt-Optionen Relation

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: product_option_relation, sourceId: 928af133bbb84f43859a6f8fe21befd3
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.

Fehlender Customer bei Bestellung

[error] SWAG_MIGRATION_RUN_EXCEPTION
An exception occurred
Entity: order, sourceId: 2818
Mapping of "customer" is missing, but it is a required association for "order". Import "customer" first.

Payment Feld vermisst Daten für Bestellung

[warning] SWAG_MIGRATION_EMPTY_NECESSARY_FIELD_ORDER
The order entity has one or more empty necessary fields
The order entity with the source id 2768 does not have the necessary data for the field(s): payment

Ich hoffe jemand von euch hat Erfahrung mit ähnlichen Problemen und weiß wie man damit umgeht. Es kann gut sein das der alte Shop Dateninkonsistenzen hat da er bereits in zweiter Hand läuft (Firmenübernahme) Und schon seit vielen Jahren ohne intensive Datenpflege betrieben wird.

Welcher Weg ist hier der richtige?

  • Versuchen, die alten Daten in der Datenbank zu fixen und nochmal zu migrieren?
  • Statt Migrationsplugin lieber Import/Export funktionen benutzen?
  • Die alten Daten vergessen und alles neu einpflegen? (Bitte nicht…)

Für jegliche Vorschläge offen. Danke

Die beste, aber auch aufwändigste Lösung ist wohl ein Script zum auslesen der Daten schreiben und dann per API an Shopware übertragen. So gibts keine Speicherprobleme (RAM) beim Import, über fehlende Daten wird man konkret informiert und der Import sollte sauber ablaufen.

Ist halt Aufwand.

Würde dies auf jeden Fall machen, bevor ich Daten erneut manuell anlege.