Migrations-Assistent bricht immer wieder ab / pausiert und nicht reaktivierbar

Hallo zusammen,
ich bin dabei mit dem Migrationsassistent einen Shopware 5.7.18 Shop auf Shopware 6.5.8.7 zu migrieren. Das Migrations-Tool hat auch soweit (größtenteils) funktioniert.

Möchte ich nun aber die letzten Bestellungen und neue Produkte und neue Kunden aus dem SW 5 Shop migrieren, indem ich nochmal die Migration anstoße, hängt sich der Migrations-Assistent ständig auf und pausiert, kann danach aber nicht wieder aktiviert werden, wenn ich auf „Fortsetzen“ klicke. Die Internetverbindung ist stabil. Der Fehler beschäftigt mich nun schon seit einiger Zeit.

Ich habe da mehrmals schon in der SW6 DB unter „swag migration run“ die dann nicht weiterlaufende Migration von „running“ auf „aborted“ über die Datenbank gesetzt. Auch der Reset der Prüfsummen hat den Fehler nicht beseitigen können.

Ebenfalls ist in der SW6 Datenbank nun „swag_migration_mapping“ wirklich groß geworden mit fast 10 Millionen Einträgen und 5,2 GB. Wie kann ich diese Datenmenge dort reduzieren?

Das Löschen von Migrationsdaten aus Migrations-Assistent > Historie hilft in dem Fall beispielsweise nicht weiter.

Über eine Rückmeldung bin ich sehr dankbar!

Beste Grüße

Die Migration von SW5 auf SW6 ist schon ein besonderes Erlebnis. Hier hätte ich mir zu Beginn von Shopware etwas mehr Hilfe erwartet.

Nun ja, derartige Abbrüche können leider viele Faktoren sein. So pauschal kann man keine Antwort geben. Alles hängt auch mit der Größe vom Quellshop ab. Für die Migration ist es schon wichtig, sind es 5.000 Kunden oder 600.000? Hier spielen Speicherplatz auch eine Rolle, ebenso die Einstellungen der Datenbanken. Leider muss ich auch feststellen, das große Datenbanken mit MariaDB arge Probleme bei der Migration bereiten obwohl Shopware sogar MariaDB als Systemvorrausetzung schreibt. Wichtig sind auch Buffergrößen und Laufzeiten bei den Datenbankeinstellungen. Hier kann man nichts pauschales schreiben, weil jedes System so unterschiedlich ist.

Gar nicht, denn das Mapping ist sehr wichtig. Wenn die Migration abgeschlossen ist (also wenn wirklich alles sauber migriert wurde und der SW6 Shop online gehen kann) wird diese Databelle gelöscht. Bis data ist das völlig normal!

Hallo @R4M , besten Dank für deine schnelle Antwort.

Da waren schon ein paar interessante Stichwörter dabei. Auf unserem momentanen Server läuft MariaDB 10.6.16 für den SW5 und die neue SW6 Installation. Ich habe gesehen, dass bei SW6 MariaDB 10.6.16 nicht explizit empfohlen wird im Gegensatz zu zB. 10.11. - Hast du ggf. einen Tipp bezüglich der genaueren MariaDB Version?

https://developer.shopware.com/release-notes/6.5/6.5.8.7.html

Ansonsten um die Shopgröße einzuschätzen: unter 5000 Kunden und etwa 5000 Produkte mit einigen Varianten - wobei viele davon auch inaktiv sind.

Bezüglich Buffergrößen und Laufzeiten werde ich mich dann an den Hostinganbieter wenden müssen.

Danke auch für deine Infos zum Thema Mapping. :slight_smile:

Beste Grüße

Ganz ehrlich, mein Tipp wäre auf MariaDB ganz zu verzichten. MySQL 8 ist für Shopware 6 besser geeignet. Ich habe leider schlechte Erfahrung mit MariaDB im Zusammenhang mit Migration machen müssen.

Hi @dino,

generell empfehlen wir die Migration via CLI im Prod-Modus, da per Admin lange Query-Laufzeiten oder ähnliches zu Timeouts führen kann und im Prod-Modus der Symfony-Profiler nicht mitläuft, dadurch läuft die Migration schneller und stabiler.

Vielleicht hilft dir das schon, dass deine Migration durchläuft, bei 5k Kunden und Produkten, sollte die Migration nicht so lange dauern. Generell ist es meist auch ganz gut, vor der Migration in SW5 aufzuräumen, also braucht man die inaktiven Produkte noch und müssen alle Kunden migriert werden etc.

Wie vorher schon erwähnt ist das Mapping wichtig und wird benötigt, dass die Datensätze nicht doppelt angelegt werden. Das Löschen der Historie bewirkt nur, dass die Tabelle swag_migration_logging verringert wird. Die Tabelle swag_migration_mapping sollte niemals geleert werden, weil sonst die Zuordnung von alter zur neuen ID verloren geht und somit doppelte Datensätze entstehen.

Gruß

Krispin

Leider musste ich die Erfahrung machen, dass selbst mit CLI die Migration mit einer MariaDB stehen blieb. Zusammen mit dem Shopware Support haben wir viele Tage verbracht um das Rätsel zu lösen. Habe mehrmals sogar mit Shopware telefoniert. Am Ende lag es an MariaDB.

[============================] 1/1 Read language
[============================] 1/1 Read category_custom_field
[============================] 794/794 Read category
[============================] 1/1 Read customer_group_custom_field
[============================] 8/8 Read customer_group
[============================] 1/1 Read currency
[============================] 5/5 Read sales_channel
[============================] 18/18 Read number_range
[============================] 1/1 Read customer_custom_field
[============================] 608839/608839 Read customer
[============================] 37/37 Read shipping_method
[============================] 1/1 Read order_custom_field
[============================] 857413/857413 Read order
[============================] 1/1 Read order_document_custom_field
[============================] 1244343/1244343 Read order_document
[============================] 4/4 Write number_range
[============================] 43/43 Write customer
[============================] 2469/2469 Write order
[============================] 545/545 Write order_document
[>---------------------------] 0/545 Process media
… hier war dann Ruhe

Die Fehlersuche war ätzend. Denn es gab keinen Hinweis, keine Fehlermeldung, einfach nichts. Alle Daten wurden aus dem Quellsystem korrekt erfasst und ins Mapping geholt. Und erst beim Schreiben der Daten in die SW6 DB stoppte der Prozess bzw. blieb einfach stehen. 2 Tage stand „run“ als Status in der DB. In der DB konnte ich nur noch sehen, dass es beim Schreiben der Kundendaten offensichtlich abgebrochen hat, denn hier kamen immer noch ca. 50% an, der Rest fehlte komplett.

So cool wie die Migration von Shopware vermittelt wird, ist es bei vielen Fällen leider nicht! Schon gar nicht, wenn das Quellsystem schon ein paar Jahre existiert und sich in der Zwischenzeit viele Dinge im Shop verändert haben.

Hey Leute!
Bei mir hat die Migration auch abgebrochen wegen Memory Limit. Hab jetzt alles erhöht und würde den Prozess gerne wieder fortsetzen. Aber wie mache ich das?

Wenn ich noch einmal „php bin/console migration:migrate products“ eingebe, steht dort „Another migration is currently running.“

Gibt es einen Befehl, mit dem ich die Migration über die Konsole wieder anstoßen kann, oder muss ich wieder ganz von vorne anfangen?

Die aktive Migration muss erst beendet bzw. abgebrochen werden. Solange wie eine Migration läuft, kann man keine neue starten. Weder übers Backend noch über Konsole.

In die DB Tabelle „swag_migration_run“ gehen und bei der letzten Migration in Spalte „status“ das „run“ mit „aborted“ tauschen. Dann kann eine weitere Migration stattfinden. Aber! Woher wirklich genau prüfen, ob die Migration tatsächlich noch läuft (MySQL Prozesse anschauen) oder nicht. Im schlimmsten Falle auch die MySQL Prozesse beenden.

Ups, danke! Hatte ich gar nicht gesehen, bevor ich das in dem anderen Thema nochmal geschrieben hatte. Sorry. Probier ich mal. :pray: