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


20

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

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

  • Коли я створюю новий модуль,
  • Коли я щось додаю до каталогу налаштування,
  • Коли я редагую etc/module.xml,
  • Коли я редагую etc/di.xml,
  • Коли я редагую etc/webapi.xml,
  • Коли я редагую etc/adminhtml/system.xml

Питання: У яких ситуаціях абсолютно необхідно запустити bin/magento setup:upgradeкоманду?

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

Відповіді:


43

Детальніше читайте на: Блог Mageprince

Вам потрібно лише запустити setup:upgradeкоманду

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

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

3. На момент встановлення нового модуля

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

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

1) Перевірте версію модуля в setup_moduleтабл

2) Якщо версія не доступна або нова версія додана в module.xml, вона запустить сценарій установки та додасть номер останньої версії в таблицю

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

Налаштування php bin / magento: статичний контент: розгортання

Коротка форма: 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


3

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

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

3.При редагуванні тощо / module.xml

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

4.При редагуванні тощо / module.xml,

5.При редагуванні тощо / di.xml,

6.Коли я редагую тощо / webapi.xml,

7.Коли я редагую etc / adminhtml / system.xml для xml змін, кеш-пам’яті змін більш ніж достатньо:

php bin/magento cache:flush

зміни css і js: - флеш кеш і php bin/magento setup:static-content:deploy


Наскільки я розумію, це setup:upgradeможе бути виконано як альтернатива module:enable.
Джошуа Потоп

Чи доступні сценарії, що поєднують ці команди в 1?
snh_nl

2

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

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


Ні, нам не потрібно запускати setup:upgradeдля модифікації XML. Детальніше див. Верхню відповідь :)
Принц Патель

1

Просто потрібно запустити налаштування bin / magento: оновлюйте щоразу, коли ви робите зміни в базі даних.

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

Отже, основне правило, яке потрібно пам’ятати, - якщо ви знаєте, що ваш код буде вносити зміни в базу даних, то запустіть команду setup: upgrade.


Чи php bin/magento setup:upgradeробить налаштування CRON JOB застарілим? Я розгублений, тому що він увійшов сюди як cronjob для запуску щохвилини devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl

1

Я створив файл 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

en_AU en_US за командою ssd?
snh_nl

0

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.