何时确切使用php bin / magento设置:升级


10

在很多情况下,我会在开发人员模式下更改模块中的某些文件,但是直到我运行后,更改才会在前端进行 php bin/magento setup:upgrade

只想知道我们什么时候应该运行setup:upgrade命令,Magento 2的目的是什么?

这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。有人知道原因吗?

Answers:


17

如果启用了一个或多个模块,则需要运行magento setup:upgrade以更新数据库架构。

默认情况下,magento setup:upgrade清除编译的代码和缓存。通常,您用于magento setup:upgrade更新组件,并且每个组件可能需要不同的编译类。

magento setup:upgrade --keep-generated

可选--keep-generated选项仅应由经验丰富的系统集成商在有限的情况下使用。--keep-generated切勿在开发环境中使用。

错误使用此可选参数可能会在代码执行期间导致错误。

更新(17/10/17)

正如主题创建者问我的那样:

但这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。你知道什么原因吗?

var/cacheMagento 2中的代码不足以使更改像Magento 1一样可见。在Magento 2中,您需要在代码内部进行更改后清除var/generationvar/di如果编译了代码),尤其是在构造函数内部进行更改时。

您还需要清除var/view_preprocessed是否在模板文件(.phtml)中进行了更改

其余的将去var/cachevar/full_page_cache

希望这可以帮助。


主席先生,谢谢您的回答。但这对我来说真是太奇怪了,因为每次我进行一些更改时,只有在我运行setup:upgrade命令之后,这些更改才可见。即使我删除了var / cache,它仍然不可见。你知道什么原因吗?
米歇尔·高肯

也许您没有清除足够的目录。也许该setup:upgrade命令正在为您清除它们。请参阅此页面以供参考。我假设您的模块已启用;如果没有,那也会引起问题。
史蒂夫·约翰逊

@MichelGokan我更新了答案。
Toan Nguyen'7

禁用扩展后是否需要运行setup:upgrade?
Webninja

@Webninja是的,我们愿意。
Toan Nguyen

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/*

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.