只需在这些命令之间有一个明显的区别。
- 何时运行magento设置:升级和
- 何时运行setup:di:compile?
同样,当所有缓存都被禁用时,在模块发生任何更改后,我们是否还需要刷新缓存并重新索引索引器?
只需在这些命令之间有一个明显的区别。
同样,当所有缓存都被禁用时,在模块发生任何更改后,我们是否还需要刷新缓存并重新索引索引器?
Answers:
何时运行setup:upgrade
命令
如果启用了一个或多个模块,则需要运行Magento setup:upgrade
来更新数据库架构。
要么
如果您编写一些升级方案,则必须启动Magento setup:upgrade
命令
我们什么时候需要运行setup:di:compile
命令?
答案很简单,该命令实现了以下目的
应用程序代码生成(工厂,代理等)
区域配置聚合(即,每个区域的优化依赖项注入配置)
拦截器生成(即,拦截器的优化代码生成)
拦截缓存生成
存储库代码生成(即,为API生成的代码)
服务数据属性生成(即,生成的数据对象扩展类)
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及更高版本中)
var/di
开发人员模式下有@MurtuzaZabuawala 吗?
bin / magento setup:upgrade ::仅在与安装程序脚本相关的模块有任何更改时使用。升级后,需要运行bin / magento setup:di:compile。
bin / magento setup:di:compile ::如果要进行与di.xml文件或任何控制器方法有关的任何更改。在这种情况下,无需运行升级。
magento setup:upgrade大致相当于magento 1中的n98-magerun sys:setup:run,它可以运行您的设置脚本,但它不包含magento 2中自2.1以来的功能(如果我没有记错的话)。它会激活您新创建的模块。这将需要在开发人员模式以及生产和默认模式下运行。setup:di:compile会生成您的“自动生成的”类,它只需要在生产模式下运行,因为这是在开发人员模式下自动完成的。
同样,关于索引编制,除非启用了平面表并且对受索引影响的实体之一进行了更改(例如产品属性,类别属性,类别产品等),否则不需要这样做。清除缓存不应从理论上讲,如果禁用了缓存,则需要运行,但我一直都在进行完整性检查,请记住,安装程序升级也会清除缓存。
我希望这回答了你的问题。
setup:upgrade 对模块文件进行更改后,必须运行setup:upgrade命令
setup:di:compile 对模块/布局配置进行更改后,必须运行setup:di:compile命令