Wann genau PHP Bin / Magento Setup zu verwenden: Upgrade

10

Es gibt viele Situationen, in denen ich einige Dateien in meinem Modul im Entwicklermodus ändere, aber die Änderungen wurden erst im Frontend vorgenommen, als ich ausgeführt wurde php bin/magento setup:upgrade

Ich wollte nur wissen, wann wir den setup:upgradeBefehl ausführen sollen und wozu das in Magento 2 dient.

Es ist einfach so seltsam für mich, weil jedes Mal, wenn ich Änderungen vornehme, diese erst sichtbar werden, nachdem ich den Befehl setup: upgrade ausgeführt habe. Selbst wenn ich den var / cache lösche, ist er immer noch nicht sichtbar. Kennt jemand einen Grund dafür?

Michel Gokan
quelle

Antworten:

17

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

Standardmäßig werden magento setup:upgradekompilierter Code und der Cache gelöscht. In der Regel werden Sie magento setup:upgradezum Aktualisieren von Komponenten verwendet, und für jede Komponente können unterschiedliche kompilierte Klassen erforderlich sein.

magento setup:upgrade --keep-generated

Die optionale --keep-generatedOption sollte nur unter eingeschränkten Umständen von erfahrenen Systemintegratoren verwendet werden. --keep-generatedsollte niemals in einer Entwicklungsumgebung verwendet werden.

Die unsachgemäße Verwendung dieses optionalen Parameters kann zu Fehlern bei der Codeausführung führen.

UPDATE (07/10/17)

Als der Themenersteller mich fragte:

Aber es ist einfach so seltsam für mich, denn jedes Mal, wenn ich Änderungen vornehme, werden sie erst sichtbar, nachdem ich den Befehl setup: upgrade ausgeführt habe. Selbst wenn ich den var / cache lösche, ist er immer noch nicht sichtbar. Kennen Sie einen Grund dafür?

var/cacheIn Magento 2 reicht es nicht aus, Änderungen wie in Magento 1 sichtbar zu machen. In Magento 2 müssen Sie var/generation(und var/diwenn Sie Code kompiliert haben) löschen, nachdem Sie Änderungen in Ihrem Code vorgenommen haben, insbesondere wenn Sie etwas im Konstruktor ändern.

Sie müssen auch löschen, var/view_preprocessedwenn Sie etwas in Ihrer Vorlagendatei (.phtml) ändern.

Der Rest geht an var/cacheundvar/full_page_cache

Hoffe das hilft.

Toan Nguyen
quelle
Sir, vielen Dank für Ihre Antwort. Aber es ist einfach so seltsam für mich, denn jedes Mal, wenn ich Änderungen vornehme, werden sie erst sichtbar, nachdem ich den Befehl setup: upgrade ausgeführt habe. Selbst wenn ich den var / cache lösche, ist er immer noch nicht sichtbar. Kennen Sie einen Grund dafür?
Michel Gokan
Möglicherweise löschen Sie nicht genügend Verzeichnisse. Vielleicht löscht der setup:upgradeBefehl sie für Sie. Schauen Sie sich diese Seite als Referenz an. Ich gehe davon aus, dass Ihr Modul aktiviert ist. Wenn nicht, verursacht dies auch Probleme.
Steve Johnson
@MichelGokan Ich habe die Antwort aktualisiert.
Toan Nguyen
Müssen wir das Setup ausführen: Upgrade nach dem Deaktivieren von Erweiterungen?
Webninja
@Webninja Ja, das machen wir.
Toan Nguyen
0

Wenn Sie Module aktivieren, ändern Sie die Modulversion, die Sie ausführen müssen magento setup:upgrade, um das Datenbankschema zu aktualisieren.

In anderen Fällen, wenn Sie neue Daten in Ihren Klassenkonstruktoren hinzufügen, müssen Sie diese ausführen, magento setup:upgradeda der Ordner var / generator gelöscht wird. Um dies zu verstehen, entfernen Sie die Schreib- und Leseberechtigungen für den varOrdner und führen Sie den Befehl ausmagento setup:upgrade

Sie erhalten eine Fehlermeldung wie diese,
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. was bedeutet, dass dieser Befehl den Ordner var / generator löscht. Wenn Sie Ihre Änderungen erhalten möchten, ohne den magento setup:upgradeBefehl auszuführen , müssen Sie diese drei Ordner löschen

rm -rf var/cache/* var/page_cache/* var/generation/*

Ledian Hymetllari
quelle