Magento 2: Wann soll ich welche Befehle ausführen?


20

Ich arbeite jetzt seit 2 Monaten mit Magento 2 . Mir wurde klar, dass ich bin/magento setup:upgradeviel zu viel benutze . Ich glaube , ich weiß nicht , wann ich muss diesen Befehl auszuführen.

In den folgenden Situationen führe ich den oben genannten Befehl aus.

  • Wenn ich ein neues Modul erstelle,
  • Wenn ich etwas zum Setup-Verzeichnis hinzufüge,
  • Wenn ich bearbeite etc/module.xml,
  • Wenn ich bearbeite etc/di.xml,
  • Wenn ich bearbeite etc/webapi.xml,
  • Wenn ich bearbeite etc/adminhtml/system.xml

Frage: In welchen Situationen muss der bin/magento setup:upgradeBefehl unbedingt ausgeführt werden ?

( Der Grund, den ich frage, ist, dass es einige Zeit dauert, diesen Befehl zu beenden. Ich glaube, dass er die Produktivität wirklich verbessern kann, wenn ich ihn nicht mehr unnötig verwende. )

Antworten:


42

Lesen Sie mehr bei: Mageprince Blog

Sie müssen nur den setup:upgradeBefehl ausführen

1. Wenn Sie Änderungen im Setup-Skript vorgenommen haben (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Wenn Sie Magento zum ersten Mal installieren.

3. Zum Zeitpunkt der Installation des neuen Moduls

4. Nach dem Upgrade der Magento-Version.

Was wird setup:upgradeBefehl tun

1) Überprüfen Sie die Modulversion in der setup_moduleTabelle

2) Wenn die Version nicht verfügbar ist oder eine neue Version in der Datei module.xml hinzugefügt wurde, wird das Setup-Skript ausgeführt und die neueste Versionsnummer in die Tabelle eingefügt

Wenn Sie Änderungen in HTML-, CSS-, JS-, ... -Dateien vorgenommen haben, müssen Sie bestimmte geänderte Dateien aus dem pub/staticOrdner löschen oder diesen Befehl ausführen

php bin / magento setup: static-content: deploy

Kurzform: PHP bin / Magento s: s: d

Wenn Sie Änderungen wie das Hinzufügen neuer Abhängigkeiten in __construct () oder Änderungen in vorgenommen habendi.xml , müssen Sie geänderte Dateien aus dem var/generationOrdner löschen oder diesen Befehl ausführen

php bin / magento setup: di: compile

Kurzform: PHP bin / Magento s: d: c

Wenn Sie Änderungen an der Admin-Konfiguration, der Layout-XML, der UI-Komponente, der HTML- Datei usw. vorgenommen haben, müssen Sie nur den Cache leeren oder leeren

PHP bin / Magento Cache: Flush

Kurzform: PHP bin / Magento c: f


3

1.Wenn ich ein neues Modul erstelle:

2.Wenn ich etwas zum Setup-Verzeichnis hinzufüge

3.Wenn ich die Datei etc / module.xml bearbeite

php bin/magento module:enable
php bin/magento setup:upgrade

4.Wenn ich die Datei etc / module.xml bearbeite,

5.Wenn ich etc / di.xml bearbeite,

6.Wenn ich etc / webapi.xml bearbeite,

7.Wenn ich die Datei etc / adminhtml / system.xml für XML-Änderungen bearbeite, ist das Leeren des Cache mehr als ausreichend:

php bin/magento cache:flush

CSS und JS Änderungen: - Cache leeren und php bin/magento setup:static-content:deploy


Soweit ich weiß, setup:upgradekann alternativ dazu ausgeführt werden module:enable.
Joshua Flood

Sind Skripte verfügbar, die diese Befehle in 1 kombinieren?
snh_nl

2

Wenn Sie im Entwicklermodus arbeiten , müssen compilSie beim Ändern nicht e eingeben xml, sondern können nur ein setup:upgrade.

Und für andere Modifikationen css, phtml, js, nur flush cache, Sie müssen nicht auf statische Inhalte bereitstellen .


Nein, wir müssen nicht setup:upgradefür die XML-Änderung ausgeführt werden. Weitere Informationen finden Sie in der oberen Antwort :)
Prince Patel

1

Führen Sie einfach das bin / magento-Setup aus: Führen Sie ein Upgrade durch, wenn Sie Änderungen an der Datenbank vornehmen.

Zum Beispiel, wenn Sie Attribute (programmgesteuert), neue Module, Versions-Upgrades usw. erstellen.

Die Grundregel, die zu beachten ist, lautet: Wenn Sie wissen, dass Ihr Code Änderungen an der Datenbank vornehmen würde, führen Sie den Befehl setup: upgrade aus.


Ist php bin/magento setup:upgradedas Setup von CRON JOB nicht mehr aktuell? Ich bin verwirrt , weil es hier als cronjob angemeldet ist everye Minute zu laufen devdocs.magento.com/guides/v2.3/comp-mgr/module-man/...
snh_nl

1

Ich habe eine Bash-Datei erstellt, die den Prozess automatisieren könnte:

Geben Sie in Ihrem Magento-Ordner "vi magento_bash" ein. Kopieren Sie den folgenden Code und fügen Sie ihn ein. Speichern Sie die Datei, indem Sie escapen und: wq eingeben und hoffen, dass dies hilft. Hinweis: In der folgenden Datei wird jeweils nur ein Befehl ausgeführt.

#!/bin/sh

mainmenu()
{

echo 'Press 1 if you have created a new module'

echo 'Press 2 if you have changed HTML, CSS, JS..'

echo 'Press 3 if you have made changes like add new dependency in __construct() or changes in di.xml'

echo 'Press 4 if you have made changes like admin configuration, layout xml, ui component, phtml'

read -n 1 -p "Input Selection:" mainmenuinput

if [ "$mainmenuinput" = "1" ];
then
    cd src
    php bin/magento setup:upgrade
elif [ "$mainmenuinput" = "2" ];
then
    cd src
    php bin/magento s:s:d en_AU en_US
elif [ "$mainmenuinput" = "3" ];
then
    cd src
    php bin/magento setup:di:compile
elif [ "$mainmenuinput" = "4" ];
then
    cd src
    php bin/magento cache:flush
else
    echo 'You have selected an invalid selection'
fi
}

mainmenu

de_DE de_DE hinter dem Befehl ssd?
snh_nl

0

Wenn Sie Ihren Code manuell bereitstellen. Alle oben vorgeschlagenen Methoden sind gut genug, um Zeit zu sparen.

Wenn Sie eine automatische Bereitstellung über Jenkins oder andere Tools haben, sollten Sie alle Befehle ausführen, da das Tool nicht weiß, was Sie getan haben und welche Datei geändert wurde.

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.