Magento 2: Kiedy powinienem uruchomić które polecenia?

20

Pracuję z Magento 2 już od 2 miesięcy. Uświadomiłem sobie, że bin/magento setup:upgradezbyt dużo używam . Myślę, że nie wiem, kiedy trzeba uruchomić tę komendę.

Oto sytuacje, w których uruchamiam wyżej wymienione polecenie.

  • Kiedy tworzę nowy moduł,
  • Kiedy dodam coś do katalogu instalacyjnego,
  • Kiedy edycja etc/module.xml,
  • Kiedy edycja etc/di.xml,
  • Kiedy edycja etc/webapi.xml,
  • Kiedy edytuję etc/adminhtml/system.xml

Pytanie: W jakich sytuacjach absolutnie konieczne jest uruchomienie bin/magento setup:upgradepolecenia?

( Powód, dla którego pytam, jest taki, że wykonanie tego polecenia zajmuje trochę czasu. Wierzę, że może naprawdę poprawić wydajność, jeśli przestanę go niepotrzebnie używać ).

Bunyamin Inan
źródło

Odpowiedzi:

43

Czytaj więcej na: Blog Mageprince

Musisz tylko uruchomić setup:upgradepolecenie

1. Po wprowadzeniu zmian w skrypcie instalacyjnym (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Jeśli instalujesz Magento po raz pierwszy.

3. W momencie instalacji nowego modułu

4. Po aktualizacji wersji magento.

Co zrobi setup:upgradepolecenie

1) Sprawdź wersję modułu w setup_moduletabeli

2) Jeśli wersja nie jest dostępna lub dodano nową wersję w module.xml, uruchomi skrypt instalacyjny i doda najnowszy numer wersji w tabeli

Jeśli dokonałeś zmian w plikach HTML, CSS, JS, ... musisz usunąć określone zmienione pliki z pub/staticfolderu lub uruchomić to polecenie

konfiguracja php bin / magento: zawartość statyczna: wdrażanie

Skrót: php bin / magento s: s: d

Jeśli dokonałeś zmian, takich jak dodanie nowej zależności w __construct () lub zmiany wdi.xml , musisz usunąć zmienione pliki z var/generationfolderu lub uruchomić to polecenie

konfiguracja php bin / magento: di: compile

Skrót: php bin / magento s: d: c

Jeśli dokonałeś zmian w konfiguracji administratora, układzie xml, komponencie interfejsu użytkownika, phtml, ... plikach, musisz tylko wyczyścić lub opróżnić pamięć podręczną

php bin / magento cache: flush

Skrót: php bin / magento c: f

Książę Patel
źródło
3

1. Kiedy tworzę nowy moduł:

2. Kiedy dodam coś do katalogu instalacyjnego

3. Kiedy edytuję plik etc / module.xml

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

4. Kiedy edytuję plik etc / module.xml,

5. Kiedy edytuję etc / di.xml,

6. Kiedy edytuję plik etc / webapi.xml,

7. Kiedy edytuję etc / adminhtml / system.xml dla zmian xml, opróżnianie pamięci podręcznej jest więcej niż wystarczające:

php bin/magento cache:flush

zmiany css i js: - opróżnij pamięć podręczną i php bin/magento setup:static-content:deploy

Pramod Kharade
źródło
O ile rozumiem, setup:upgrademoże być wykonany jako alternatywa dla module:enable.
Joshua Flood
Czy są dostępne skrypty łączące te polecenia w 1?
snh_nl
2

Jeśli pracujesz w trybie programisty , nie musisz go compilmodyfikować xml, możesz zrobić tylko setup:upgrade.

A dla innych modyfikacji jak css, phtml, js, tylko flush cachetrzeba, aby nie wdrażać zawartość statyczną .

Marialena
źródło
Nie, nie musimy uruchamiać setup:upgrademodyfikacji XML. Aby uzyskać więcej informacji, patrz górna odpowiedź :)
Prince Patel
1

Wystarczy uruchomić konfigurację bin / magento: aktualizuj za każdym razem, gdy modyfikujesz bazę danych.

Na przykład, jeśli tworzysz atrybuty (programowo), nowe moduły, aktualizacje wersji itp.

Podstawową zasadą, o której należy pamiętać, jest to, że jeśli wiesz, że Twój kod będzie modyfikował bazę danych, uruchom polecenie setup: upgrade.

Sukeshini
źródło
Czy php bin/magento setup:upgradekonfiguracja CRON JOB jest przestarzała? Jestem zdezorientowany, ponieważ jest zalogowany tutaj jako kolega z pracy, aby uruchamiać co minutę devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl 15.04.19
1

Utworzyłem plik bash, który mógłby zautomatyzować proces:

w folderze magento wpisz „vi magento_bash”, skopiuj i wklej poniższy kod. zapisz plik ucieczką i: wq i wpisz nadzieję, że to pomoże. Uwaga: poniższy plik przyjmuje tylko jedno polecenie na raz.

#!/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
Komal Bandi
źródło
en_AU en_US za komendą ssd?
snh_nl
0

Podczas wdrażania kodu ręcznie. Wszystkie powyższe sugerowane metody są wystarczająco dobre, aby zaoszczędzić czas.

Jeśli masz automatyczne wdrażanie za pośrednictwem Jenkins lub innych narzędzi, powinieneś uruchomić wszystkie polecenia, ponieważ narzędzie nie wie, co zrobiłeś i który plik został zmieniony.

Kalyan Chakravarthi V.
źródło