Когда именно использовать php bin/настройка magento: обновление
Существует множество ситуаций, в которых я изменяю некоторые файлы в своем модуле в режиме разработчика, но изменения не происходили во внешнем интерфейсе, пока я не запустил php bin/magento setup:upgrade
Просто хотел узнать, когда мы должны запустить команду setup:upgrade
и какова ее цель в Magento 2?
Это просто так странно для меня, потому что каждый раз, когда я делаю какие-то изменения, они не будут видны до тех пор, пока я не выполню команду setup:upgrade. Даже если я удалю var/кэш, он все равно не будет виден. Кто-нибудь знает какую-либо причину этого?
2 answers
Если вы включили один или несколько модулей, вам потребуется запустить magento setup:upgrade
для обновления схемы базы данных.
По умолчанию magento setup:upgrade
очищает скомпилированный код и кэш. Как правило, вы используете magento setup:upgrade
для обновления компонентов, и для каждого компонента могут потребоваться разные скомпилированные классы.
magento setup:upgrade --keep-generated
Дополнительная опция --keep-generated
должна использоваться только в ограниченных обстоятельствах опытными системными интеграторами. --keep-generated
никогда не следует использовать в среде разработки.
Неправильное использование этот необязательный параметр может привести к ошибкам во время выполнения кода.
ОБНОВЛЕНИЕ (07/10/17)
Как спросил меня создатель темы:
Но это так странно для меня, потому что каждый раз, когда я делаю какие -то изменения, они не будут видны до тех пор, пока я не выполню команду setup:upgrade . Даже если я удалю var/кэш, он все равно не будет виден. Знаете ли вы какую-либо причину этого?
var/cache
в Magento 2 недостаточно, чтобы изменения были видны, как в Magento 1. В В Magento 2 вам нужно будет очистить var/generation
(и var/di
, если вы скомпилировали код) после внесения изменений в свой код, особенно всякий раз, когда вы что-то меняете внутри конструктора.
Вам также потребуется очистить var/view_preprocessed
, если вы что-то измените в файле шаблона (.phtml)
Остальное пойдет var/cache
и var/full_page_cache
Надеюсь, это поможет.
Когда вы включите модули, измените версию модулей, вам нужно будет запустить 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/*