Когда именно использовать php bin / magento setup: обновить

10

Есть много ситуаций, в которых я изменяю некоторые файлы в моем модуле в режиме разработчика, но изменения не происходили во внешнем интерфейсе, пока я не запустил php bin/magento setup:upgrade

Просто хотел узнать, когда мы должны запустить setup:upgradeкоманду и какова цель этого в Magento 2?

Это просто так странно для меня, потому что каждый раз, когда я делаю некоторые изменения, они не будут видны до тех пор, пока я не выполню команду setup: upgrade. Даже если я удаляю var / cache, его все равно не видно. Кто-нибудь знает какие-либо причины для этого?

Мишель Гокан
источник

Ответы:

17

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

По умолчанию magento setup:upgradeочищает скомпилированный код и кеш. Как правило, вы используете magento setup:upgradeдля обновления компонентов, и каждый компонент может требовать различных скомпилированных классов.

magento setup:upgrade --keep-generated

Опциональная --keep-generatedопция должна использоваться только в ограниченных случаях опытными системными интеграторами. --keep-generatedникогда не должен использоваться в среде разработки.

Неправильное использование этого необязательного параметра может привести к ошибкам во время выполнения кода.

ОБНОВЛЕНИЕ (10/17/17)

Как создатель темы спросил меня:

Но это так странно для меня, потому что каждый раз, когда я делаю некоторые изменения, они не будут видны до тех пор, пока я не выполню команду setup: upgrade. Даже если я удаляю var / cache, его все равно не видно. Вы знаете причину этого?

var/cacheв Magento 2 недостаточно для того, чтобы сделать изменения видимыми, как в Magento 1. В Magento 2 вам нужно будет очистить var/generationvar/diесли вы скомпилировали код) после того, как вы внесли изменения в свой код, особенно всякий раз, когда вы что-то меняете внутри конструктора.

Вам также нужно будет очистить, var/view_preprocessedесли вы что-то измените внутри вашего файла шаблона (.phtml)

Остальное идет в var/cacheиvar/full_page_cache

Надеюсь это поможет.

Тоан Нгуен
источник
Сэр, спасибо за ваш ответ. Но это так странно для меня, потому что каждый раз, когда я делаю некоторые изменения, они не будут видны до тех пор, пока я не выполню команду setup: upgrade. Даже если я удаляю var / cache, его все равно не видно. Вы знаете какие-либо причины для этого?
Мишель Гокан
Может быть, вы не очищаете достаточно каталогов. Может быть, setup:upgradeкоманда очищает их для вас. Посмотрите на эту страницу для справки. Я предполагаю, что ваш модуль включен; если нет, то это также вызывает проблемы.
Стив Джонсон
@MichelGokan Я обновил ответ.
Тоан Нгуен,
Нужно ли запускать установку: обновить после отключения расширений?
Webninja
@Webninja Да, мы делаем.
Тоан Нгуен
0

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

В других случаях, когда вы добавляете новые данные в ваши конструкторы классов, вам нужно запускать, magento setup:upgradeпотому что это очищает папку var / generation. Чтобы понять это, удалите разрешения на запись и чтение для varпапки и выполните командуmagento setup:upgrade

Вы получите сообщение об ошибке, подобное этому,
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. означающее, что эта команда очищает папку var / generation. Если вы хотите получить свои изменения без выполнения magento setup:upgradeкоманды, вам нужно очистить эти три папки

rm -rf var/cache/* var/page_cache/* var/generation/*

Ледиан Химетлари
источник