Wann sind die folgenden Befehle in magento2 auszuführen?

8

Benötigen Sie nur eine klare Unterscheidung zwischen diesen Befehlen.

  1. Wann wird das Magento-Setup ausgeführt ? Upgrade und
  2. Wann soll Setup ausgeführt werden: di: compile ?

Müssen wir nach einer Änderung des Moduls den Cache leeren und den Indexer neu indizieren, wenn der gesamte Cache deaktiviert ist?

Kapil Yadav
quelle

Antworten:

5

Wann soll der setup:upgradeBefehl ausgeführt werden ?

Wenn Sie ein oder mehrere Module aktiviert haben, müssen Sie Magento ausführen setup:upgrade, um das Datenbankschema zu aktualisieren.

Oder

Wenn Sie ein Upgrade-Schema schreiben, müssen Sie den Magento- setup:upgradeBefehl auslösen

Wann müssen wir den setup:di:compileBefehl ausführen ?

Die Antwort ist ziemlich einfach. Dieser Befehl erfüllt den folgenden Zweck

  1. Generierung von Anwendungscode (Fabriken, Proxys usw.)

  2. Bereichskonfigurationsaggregation (dh optimierte Abhängigkeitsinjektionskonfigurationen pro Bereich)

  3. Interceptor-Generierung (dh optimierte Code-Generierung von Interceptors)

  4. Interception-Cache-Generierung

  5. Generierung von Repositorys-Code (dh generierter Code für APIs)

  6. Generierung von Servicedatenattributen (dh generierte Erweiterungsklassen für Datenobjekte)

http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html

Wenn Ihr magento auf Entwicklermodus ist dann brauchen Sie nicht zu einem Brand Kompilierungsbefehl nur entfernen müssen var/diund generationOrdner (In magento 2.0.x und 2.1.x) oder erstellen Ordner in (Magento 2.2.x und höher)

Murtuza Zabuawala
quelle
Sie sind immer willkommen :)
Murtuza Zabuawala
@MurtuzaZabuawala Sind Sie sicher, dass sich das var/diVerzeichnis im Entwicklermodus befindet?
MagePsycho
5

bin / magento setup: upgrade :: Wird nur verwendet, wenn Sie Änderungen am Modul in Bezug auf das Installationsskript vorgenommen haben. Nach dem Upgrade muss bin / magento setup: di: compile ausgeführt werden .

bin / magento setup: di: compile :: Wenn Sie Änderungen an di.xml-Dateien oder einer Controller-Methode vornehmen. In diesem Fall muss kein Upgrade ausgeführt werden.

Ashish Jagnani
quelle
1

magento setup: upgrade entspricht in etwa n98-magerun sys: setup: in magento 1 ausführen in dem Sinne, dass es Ihre Setup-Skripte ausführt, aber es tut etwas zusätzlich zu dem in magento 2 seit 2.1, wenn ich mich nicht irre. Es aktiviert Ihre neu erstellten Module. Dies muss sowohl im Entwicklermodus als auch im Produktions- und Standardmodus ausgeführt werden. setup: di: compile hingegen generiert Ihre "automatisch generierten" Klassen und muss nur im Produktionsmodus ausgeführt werden, da dies automatisch im Entwicklermodus erfolgt.

Auch bei der Indizierung müssen Sie dies nicht tun, es sei denn, Sie haben flache Tabellen aktiviert und eine Änderung an einer der Entitäten vorgenommen, die von den Indizes betroffen sind, z. B. Produktattribute, Kategorieattribute, Kategorieprodukte usw. Das Löschen des Cache sollte nicht erfolgen. Es muss theoretisch ausgeführt werden, wenn die Caches deaktiviert sind, aber ich mache es die ganze Zeit, um die Integrität zu überprüfen. Denken Sie daran, dass das Setup-Upgrade auch die Caches löscht.

Ich hoffe das beantwortet deine Frage.

Vlad
quelle
0

setup: upgrade Wenn Sie Änderungen an den Moduldateien vorgenommen haben, müssen Sie den Befehl setup: upgrade ausführen

setup: di: compile Wenn Sie Änderungen an den Modul- / Layoutkonfigurationen vorgenommen haben, müssen Sie den Befehl setup: di: compile ausführen

Naveed Asim
quelle