Das Upgrade von Magento 2.1.9 auf Magento 2.2.2 ist sehr langsam


7

Wir versuchen, eine Magento 2.1.9-Site auf Magento 2.2.2 zu aktualisieren. Wir haben mehr als 130.000 Produkte und der Prozess scheint länger als 3 Stunden zu dauern.

Upgrading data..
Module 'Magento_Backend':
Module 'Magento_Catalog':

Ich habe xdebug verwendet, um zu profilieren, welcher Prozess so lange dauert, und anscheinend ist das Problem:

if (version_compare($context->getVersion(), '2.2.2') < 0) {
    $this->upgradeWebsiteAttributes->upgrade($setup);
}

Mit vielen Produkten und vielen Attributen dauert der Prozess ewig. Eigentlich steckt es immer noch da, also sind es 3 Tage. Die Datenbankgröße beträgt 47 GB.


Wie groß ist Ihre unkomprimierte Datenbank?
Brentwpeterson

Wir versuchen es mit einer leichten Version von 5 GB :)
Antonio Pedicini

Hast du eine Lösung gefunden?
Narendra Vyas

Wir haben die SQL-Abfragen ausgeführt und die Datenbank manuell geändert. Wenn Magento dann ausgeführt wird, ist das Upgrade viel schneller, da bereits das richtige Schema gefunden wird. Das Daten-Upgrade erforderte stattdessen viel Arbeit, da viele Werte von serialisiert in json_encode konvertiert wurden. Dafür haben wir die gleichen CLI-Befehle erstellt, die nachts ausgeführt werden sollen. Außerdem haben wir ein dynamisches json_encoder-Plugin erstellt. Wenn ein Wert noch nicht serialisiert worden wäre, hätte er dies im laufenden Betrieb getan.
Antonio Pedicini

Antworten:


1

Schritt 1: Greifen Sie über SSH auf Ihren Server zu

Sie müssen Ihren Server über SSH verbinden.

Schritt 2: Navigieren Sie zum Magento 2-Stammverzeichnis

Sobald Ihre SSH-Verbindung hergestellt ist, müssen Sie in Ihren Zielanwendungsordner wechseln. In diesem Anwendungsordner finden Sie den Ordner public_html, der das Stammverzeichnis von Magento 2 ist.

Schritt 3: Upgrade-Befehle

composer require magento/product-community-edition 2.2.2 --no-update

Führen Sie dann alle Befehle aus

 composer update
 rm -rf var/di var/generation
 php bin/magento setup:upgrade
 php bin/magento setup:di:compile
 php bin/magento cache:clean
 php bin/magento cache:flush
 php bin/magento indexer:reindex


-2

Bitte überprüfen Sie Ihre Serverkonfiguration und erhöhen Sie das Speicherlimit in php.ini und die Ausführungszeit. Starten Sie anschließend Ihren Server erneut. Hoffe das wird dir helfen.


Bitte erwähnen Sie, was in der Serverkonfiguration zu überprüfen ist.
Inrsaurabh

-6

Versuchen Sie, Fremdschlüssel zu deaktivieren:

SET FOREIGN_KEY_CHECKS=0;

Führen Sie das Upgrade aus

SET FOREIGN_KEY_CHECKS=1;

Dies sollte das Upgrade erheblich beschleunigen. Bitte beachten Sie, dass das Deaktivieren von Fremdschlüsselprüfungen schädlich sein kann. Versuchen Sie es daher zuerst in einer Testumgebung und vergleichen Sie die Ergebnisse mit einer Datenbank, die mit Fremdschlüsseln aktualisiert wurde.


Warum muss er die Schlüsselüberprüfung mit Magento-Upgrade deaktivieren?
MagenX

Magento hat viele verbundene Tabellen. Durch Deaktivieren der Fremdschlüsselprüfung werden die Einfügungen beschleunigt, es wird jedoch keine Fehlerprüfung für die eingefügten Daten angezeigt. Ich habe dies mit einer Site durchgeführt, um das Migrationstool lokal zu testen, und es hat den Import beschleunigt. Ich habe empfohlen, die generierte Datenbank zu überprüfen und zu vergleichen, da diese Methode nicht sicher ist. Die Abstimmungen kommen möglicherweise von Entwicklern, die die erste Zeile sehen und den Grund dafür nicht lesen oder verstehen. Aber hey, es ist das Internet!
Czettner Sándor

1
Gehen Sie zu Ihrem Root-Laufwerk und geben rm -rf *Sie ein. Beachten Sie jedoch, dass dies schädlich sein kann. Probieren Sie es also zuerst in einer Testumgebung aus. Ist dies sinnvoll?
MagenX

Haben Sie einen anderen Vorschlag, um dies erheblich zu beschleunigen? Das Deaktivieren von Fremdschlüsselprüfungen verursacht nicht unbedingt Schaden. Ich habe es letztendlich nicht in der Produktion gemacht, aber es hat mir vor Ort sehr geholfen, schnell zu testen, ob die Migration funktioniert oder nicht.
Czettner Sándor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.