Когда выполнять следующие команды в magento2?

8

Просто нужно четкое различие между этими командами.

  1. Когда запускать magento setup: обновить и
  2. когда запустить установку: di: compile ?

Также, когда весь кеш отключен, нужно ли очищать кеш и переиндексировать индексатор после любого изменения в модуле?

Капил Ядав
источник

Ответы:

5

Когда запускать setup:upgradeкоманду

Если вы включили один или несколько модулей, вам потребуется запустить Magento setup:upgradeдля обновления схемы базы данных.

Или

Если вы напишете какую-то схему обновления, вам придется запустить setup:upgradeкоманду Magento

Когда нам нужно запустить setup:di:compileкоманду?

Ответ довольно прост. Эта команда выполняет следующую цель

  1. Генерация кода приложения (фабрики, прокси и т. Д.)

  2. Агрегирование конфигурации области (то есть оптимизированные конфигурации внедрения зависимостей для каждой области)

  3. Генерация перехватчиков (то есть оптимизированная генерация кода перехватчиков)

  4. Генерация кеша перехвата

  5. Генерация кода репозитория (то есть сгенерированного кода для API)

  6. Генерация атрибутов служебных данных (то есть сгенерированных классов расширений для объектов данных)

http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html

Если ваш magento находится в режиме разработчика, вам не нужно запускать команду компиляции, просто нужно удалить var/diи generationпапку (в magento 2.0.x и 2.1.x) или сгенерированную папку в (Magento 2.2.x и выше)

Муртуза Забуавала
источник
Всегда пожалуйста :)
Муртуза Забуавала
@MurtuzaZabuawala Вы уверены, что var/diкаталог находится в режиме разработчика?
MagePsycho
5

Настройка bin / magento: upgrade :: Используется, только если у вас есть какие-либо изменения в модуле, связанные с установочным скриптом. После обновления необходимо запустить установку bin / magento: di: compile .

Настройка bin / magento: di: compile :: Если вы делаете какие-либо изменения, связанные с файлами di.xml или любым методом контроллера. Нет необходимости запускать обновление в этом случае.

Ашиш Джагнани
источник
1

magento setup: upgrade примерно соответствует n98-magerun sys: setup: запускается в magento 1 в том смысле, что он запускает ваши установочные сценарии, но делает что-то в дополнение к magento 2 начиная с 2.1, если я не ошибаюсь. Он активирует ваши недавно созданные модули. Это нужно будет запустить в режиме разработчика, а также в режиме производства и в режиме по умолчанию. setup: di: compile, с другой стороны, генерирует ваши «автоматически сгенерированные» классы, и его нужно будет запускать только в производственном режиме, поскольку это делается автоматически в режиме разработчика.

Что касается индексации , вам не нужно делать это, если у вас не включены плоские таблицы и вы внесли изменение в одну из сущностей, на которые влияют индексы, например, атрибуты продукта, атрибуты категории, продукты категории и т. Д. Очистка кэша не должна Теоретически нужно запускать, если кэши отключены, но я делаю это все время для проверки работоспособности, имейте в виду, что обновление установки также очищает кэши.

Надеюсь, это ответит на ваш вопрос.

Влад
источник
0

setup: upgrade Когда вы внесли изменения в файлы модуля, вы должны запустить команду setup: upgrade

setup: di: compile Когда вы внесли изменения в конфигурацию модуля / макета, вам нужно запустить команду setup: di: compile

Навид Асим
источник