Magento 2: Коли потрібно запускати які команди?

Я працюю з Magento 2 протягом 2 місяців. Я зрозумів, що я занадто багато використовую bin/magento setup: upgrade . Я думаю, що не знаю, коли я повинен запустити цю команду.

Ось ситуації, в яких я запускаю вищезазначену команду.

  • When I create a new Module,
  • When I add something to Setup directory,
  • When I edit etc/module.xml,
  • When I edit etc/di.xml,
  • When I edit etc/webapi.xml,
  • When I edit etc/adminhtml/system.xml

Question: In which situations is it absolutely necessary to run bin/magento setup:upgrade command?

( Причина, чому я прошу, це зайняти деякий час, щоб завершити цю команду. Я вважаю, що це дійсно може підвищити продуктивність, якщо я перестану користуватися нею.

10

6 Відповіді

You only need to run setup:upgrade command

1. Коли ви внесли зміни в скрипт установки (InstallData, InstallSchema,
    UpgradeData, UpgradeSchema, ...)

2. Якщо ви встановите Magento в перший раз.

3. Під час встановлення нового модуля

4. Після оновлення версії magento.

Що буде робити команда setup: upgrade

1) Check module version in setup_module table

2) If version not available or new version added in module.xml, It will run setup script and add latest version number in table

Якщо ви внесли зміни у файли HTML, CSS, JS, ... , потрібно видалити певні змінені файли з папки pub/static або виконати цю команду

Настройка PHP bin/magento: static-content: deploy

     

Коротка форма: PHP bin/magento s: s: d

Якщо ви внесли зміни, наприклад, додайте нову залежність у __construct() або зміни в di.xml , потрібно видалити змінені файли з var/generation або запустіть цю команду

Налаштування PHP bin/magento: di: compile

     

Коротка форма: PHP bin/magento s: d: c

Якщо ви внесли зміни в конфігурацію адміністратора, макет xml, ui компонент, phtml, ... , потрібно лише очистити кеш чи очистити

PHP bin/magento cache: flush

     

Коротка форма: PHP bin/magento c: f

25
додано

1.При створенні нового модуля:

2.Коли я щось додаю до каталогу установки

3. Коли я редагую etc/module.xml

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

4.Коли я редагую etc/module.xml,

5.Коли я редагую etc/di.xml,

6.При редагуванні etc/webapi.xml,

7.When I edit etc/adminhtml/system.xml for xml changes cache flush is more than enough:

php bin/magento cache:flush

css and JS changes: -- flush cache and php bin/magento setup:static-content:deploy

1
додано
Наскільки я розумію, setup: upgrade можна виконати як альтернативу модулю : enable .
додано Автор Joshua Flood, джерело

Якщо ви працюєте з режимом розробника , вам не потрібно compil e, коли ви змінюєте xml , ви можете зробити лише налаштування : оновити .

А для інших модифікацій, як CSS , phtml , JS , тільки кеш для очищення , вам не потрібно розгорнути статичний вміст .

1
додано
Ні, нам не потрібно запускати setup: upgrade для модифікації xml. Для більш детальної інформації зверніться до верхньої відповіді :)
додано Автор Prince Patel, джерело

Simply need to run bin/magento setup:upgrade whenever you do modification on the database.

Наприклад, якщо ви створюєте атрибути (програмно), нові модулі, оновлення версій і т.д.

Таким чином, основне правило, яке слід пам'ятати, це якщо ви знаєте, що ваш код буде робити зміни в базі даних, то запустіть команду setup: upgrade.

0
додано

При розгортанні коду вручну. Всі запропоновані вище методи достатньо хороші, щоб заощадити час.

Якщо у вас є автоматичне розгортання через Jenkins або інші інструменти, вам слід запустити всі команди, оскільки інструмент не знає, що ви зробили і який файл був змінений.

0
додано

Я створив файл bash, який може автоматизувати процес:

у папці magento введіть "vi magento_bash" скопіюйте та вставте код нижче. збереження файлу шляхом вилучення та: wq і введіть сподіваюся, що це допоможе. Примітка. Наведений нижче файл виконує лише одну команду.

#!/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
0
додано