Tipps zur Migration von Shopware 5 auf Shopware 6

Shopware 5 to Shopware 6

Die Umstellung von Shopware 5 auf Shopware 6 kann eine Herausforderung darstellen, aber mit der richtigen Planung und Ausführung kann sie nahtlos vollzogen werden. Hier sind einige hilfreiche Tipps, um den Prozess zu vereinfachen:

Wichtige Tabellen für die Fehleranalyse

Neben den umfangreichen Protokolldateien gibt es zusätzliche Datenbanktabellen, die Aufzeichnungen über Fehler und Fehlerhinweise während des Migrationsprozesses enthalten. Die Tabelle mit dem Namen „swag_migration_logging“ ermöglicht es Ihnen beispielsweise, Filter auf die Fehler anzuwenden, entweder auf der Grundlage ihres Niveaus oder der jeweiligen Einheit, bei der Probleme auftreten.

Andere Tabellen in der Datenbank:

  • swag_migration_mapping
  • swag_migration_media_file
  • swag_migration_data

Anregung: Migration umfangreicher Datenmengen über die Konsole

Wenn Sie viele Daten in Ihrem Quellspeicher haben oder wenn Sie die Migration ohne Unterbrechung Ihrer Arbeit durchführen möchten, empfehlen wir Ihnen, die Konsole (CLI) für die Migration zu verwenden. Sobald Sie den Schritt „Datenprüfung“ abgeschlossen haben, können Sie die Migration über die CLI starten.

Um die notwendigen Schritte zu befolgen, starten Sie die Migration wie gewohnt über die Verwaltungsoberfläche. Wenn Sie jedoch die Phase „Datenprüfung“ erreicht haben, sollten Sie die Migration abbrechen. Rufen Sie dann die Konsole auf und suchen Sie das Hauptverzeichnis des Zielspeichers. Stellen Sie dabei sicher, dass Sie sich über dem öffentlichen Ordner befinden.

Bitte führen Sie den folgenden Befehl aus:

php bin/console migration:migrate [Argument]

Die Variable Argument kann die folgenden Werte annehmen:

  • b
  • basicSettings: Beinhaltet grundlegende Einstellungen und Kategorien (SalesChannel-Anhang, etc.). Sie wird automatisch ausgeführt, wenn andere DataSelections importiert werden.
  • cms: Beinhaltet Layouts.
  • customersOrders: Beinhaltet alle Kunden, Aufträge und Dokumente.
  • media: Umfasst alle Medien und Ordner.
  • newsletterRecipient: Befasst sich mit Newsletter-Empfängern.
  • Produkte: Beinhaltet alle Produktdaten und zugehörige Entitäten. Umfasst auch die zugehörigen Entitäten von „media“.
  • productReviews: Beinhaltet Produktbewertungen.
  • Werbeaktionen: Umfasst Rabatte und Werbeaktionen.
  • seoUrls: Beinhaltet SEO-URLs.
  • customerWishlists: Beinhaltet Merklisten für Kunden.

Beschleunigen Sie die Migration großer Datenmengen mit Hilfe einer lokalen Datenbank.

Bei großen Datenmengen kann es von Vorteil sein, direkt über eine lokal gelegene Datenbank zu migrieren. Auf diese Weise lässt sich die Last auf mehrere Systeme verteilen, was zu einer höheren Effizienz führt. Bei einer großen Anzahl von Datensätzen, insbesondere von Varianten, kann der Migrationsprozess jedoch sehr viel Zeit in Anspruch nehmen.

Während der Migration werden die Informationen nicht nur ausgelesen, sondern auch für den anschließenden Schreibprozess vorbereitet. Der Migrationsassistent zielt zwar darauf ab, eine nahtlose Migration zu ermöglichen, aber der Umgang mit solch großen Datenmengen ist eine Herausforderung und nicht der primäre Fokus der Erweiterung. Daher können in solchen Ausnahmefällen einige zusätzliche Anpassungen erforderlich sein.

Ob die Migration lokal oder über die API/Speicherdomäne erfolgen soll, kann im Migrationsassistenten durch Bearbeiten der Verbindungseinstellungen festgelegt werden.

Shopware 5 to Shopware 6

Fehlermeldung: „Verbindung kann nicht hergestellt werden“

Wenn beispielsweise ein Fehler bei der Eingabe der Shop-Domäne oder des API-Schlüssels aufgetreten ist, wird möglicherweise die folgende Fehlermeldung angezeigt. Falls Sie die Richtigkeit der Domain und des API-Schlüssels überprüft haben, kann das Problem auf die Verwendung einer veralteten Version der Migrationserweiterung zurückzuführen sein. Es wird daher empfohlen, die Version der Erweiterung zu überprüfen und mit dem verfügbaren Update fortzufahren.

  • Vollständige Fehlermeldung:
    • Es wurde keine Verbindung hergestellt.
    • Es konnte keine Verbindung mit dem angegebenen Server hergestellt werden. Bitte überprüfen Sie die angegebene Speicherdomäne.

Indizierung

Ein nicht vollständig aufgebauter Index kann dazu führen, dass die Migration „stecken bleibt“. Anzeichen für eine unvollständige Indizierung können sich in den folgenden Meldungen äußern, die alle darauf hindeuten, dass der Indizierungsprozess noch nicht abgeschlossen ist:

Ca. 1395350 verbleibende Produkte …

Ungefähr 1400 Kategorien verbleiben …

[…]

Um eine vollständige Indizierung zu erreichen, muss Folgendes beachtet werden:

  • Ausreichende Server-Ressourcen sind verfügbar, einschließlich eines ausreichend großen Arbeitsspeichers (mindestens 2 GB).
  • Der Server sollte keine langlaufenden Prozesse beenden.
  • Die Nachrichtenwarteschlange muss zurückgesetzt werden:

Die Nachrichten-Warteschlange kann mit den folgenden Schritten zurückgesetzt werden:

  • dead_message
    • CREATE TABLE backup_dead_message LIKE dead_message;
    • INSERT INTO backup_dead_message SELECT * FROM dead_message;
    • DELETE FROM dead_message;
  • enqueue
    • CREATE TABLE backup_enqueue LIKE enqueue;
    • INSERT INTO backup_enqueue SELECT * FROM enqueue;
    • DELETE FROM enqueue;
  • messsage_queue_stats
    • CREATE TABLE backup_message_queue_stats LIKE message_queue_stats;
    • INSERT INTO backup_message_queue_stats SELECT * FROM message_queue_stats;
    • DELETE FROM message_queue_stats;
  • messsage_queue_stats
    • CREATE TABLE backup_increment LIKE increment;
    • INSERT INTO backup_increment SELECT * FROM increment;
    • DELETE FROM increment;

Anschließend muss sichergestellt werden, dass die Nachrichtenwarteschlange über die Befehlszeilenschnittstelle (CLI) bearbeitet wird:

Um die Neuindizierung über die Nachrichtenwarteschlange zu initiieren, können Sie sie mit dem folgenden CLI-Befehl auslösen:

bin/console dal:refresh:index –use-queue

Die Indizierung erfolgt über die Nachrichtenwarteschlange und kann mehrere Stunden in Anspruch nehmen. Nach Abschluss der Indizierung wird empfohlen, den Cache per FTP zu leeren, indem alle Unterordner aus dem Verzeichnis „/var/cache/*“ gelöscht werden. Dieser Schritt stellt sicher, dass der Cache aufgefrischt wird und alle veralteten oder irrelevanten Daten entfernt werden.

Erneutes Verschieben von zuvor migrierten Artikeln.

Wurde die Migration schon einmal durchgeführt, zum Beispiel zu Testzwecken, behält die Shopware-Installation die Informationen über die bereits übertragenen Artikel. Jeder eingelesenen Datei wird eine Prüfsumme zugeordnet, mit der bei nachfolgenden Migrationen überprüft wird, ob die Daten bereits migriert wurden. Dieser Mechanismus verhindert, dass Daten doppelt migriert werden, was zu Überschreibungskonflikten führen könnte.

Um die erwähnte Prüfsumme zu generieren, legt Shopware eine neue Tabelle mit dem Namen „swag_migration_mapping“ an. Das Zurücksetzen der Prüfsumme und die Durchführung weiterer Migrationen ohne Zurücksetzen der Prüfsumme kann bei Bedarf wiederholt werden. Dieser Prozess wird durch die Migrationserweiterung erleichtert, und weitere Anweisungen finden Sie im folgenden Artikel:

Innerhalb der Tabelle „swag_migration_mapping“ ist es auch möglich, bestimmte Dateneinträge manuell zu löschen. Dies ermöglicht die selektive Rückübertragung bestimmter Entitäten. Um z.B. die Newsletter-Empfänger erneut zu migrieren, können Sie den folgenden SQL-Befehl ausführen. Bitte beachten Sie, dass die Entität entsprechend angepasst werden kann:

UPDATE swag_migration_mapping
SET checksum = null
WHERE entity = „newsletter_recipient“

Bitte kontaktieren Sie uns unter manish@bay20.com oder rufen Sie uns unter +91-8800519180 an, wenn Sie Unterstützung im Zusammenhang mit Shopware benötigen. Sie können auch die Shopware 6 Entwicklungsseite besuchen, um die von uns angebotenen Dienstleistungen zu überprüfen.