在很多情况下,我会在开发人员模式下更改模块中的某些文件,但是直到我运行后,更改才会在前端进行 php bin/magento setup:upgrade
只想知道我们什么时候应该运行setup:upgrade
命令,Magento 2的目的是什么?
这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。有人知道原因吗?
在很多情况下,我会在开发人员模式下更改模块中的某些文件,但是直到我运行后,更改才会在前端进行 php bin/magento setup:upgrade
只想知道我们什么时候应该运行setup:upgrade
命令,Magento 2的目的是什么?
这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。有人知道原因吗?
Answers:
如果启用了一个或多个模块,则需要运行magento setup:upgrade
以更新数据库架构。
默认情况下,magento setup:upgrade
清除编译的代码和缓存。通常,您用于magento setup:upgrade
更新组件,并且每个组件可能需要不同的编译类。
magento setup:upgrade --keep-generated
可选--keep-generated
选项仅应由经验丰富的系统集成商在有限的情况下使用。--keep-generated
切勿在开发环境中使用。
错误使用此可选参数可能会在代码执行期间导致错误。
正如主题创建者问我的那样:
但这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。你知道什么原因吗?
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/*