Magento 2:我什么时候应该运行哪些命令?


20

我已经使用Magento 2了2个月了。我意识到我使用bin/magento setup:upgrade太多了。我想我不知道何时需要运行该命令。

这是我运行上述命令的情况。

  • 当我创建一个新模块时,
  • 当我在安装目录中添加一些内容时,
  • 当我编辑 etc/module.xml
  • 当我编辑 etc/di.xml
  • 当我编辑 etc/webapi.xml
  • 当我编辑 etc/adminhtml/system.xml

题:在哪种情况下绝对需要运行bin/magento setup:upgrade命令?

我问的原因是完成该命令需要一些时间。我相信,如果我停止使用它,它确实可以提高生产率。

Answers:


43

阅读更多信息:Mageprince博客

您只需要运行setup:upgrade命令

1.在安装脚本(InstallData,InstallSchema,
UpgradeData,UpgradeSchema等)中进行更改时

2.如果您是第一次安装Magento。

3.安装新模块时

4.升级magento版本之后。

做什么setup:upgrade命令

1)检查setup_module表中的模块版本

2)如果版本不可用或在module.xml中添加了新版本,它将运行安装脚本并在表中添加最新版本号

如果您在HTML,CSS,JS,...文件中进行了更改,则需要从pub/static文件夹中删除特定的更改文件或运行此命令

php bin / magento设置:静态内容:部署

简短格式: php bin / magento s:s:d

如果进行了诸如在__construct()中添加新依赖项或在中进行更改的更改di.xml,则需要从var/generation文件夹中删除更改的文件或运行此命令。

php bin / magento安装程序:di:compile

简短格式: php bin / magento s:d:c

如果您在管理员配置,布局xml,ui组件,phtml等文件中进行了更改,则只需清除或刷新缓存

php bin / magento缓存:刷新

简短格式: php bin / magento c:f


3

1.当我创建一个新模块时:

2.当我添加一些东西到安装目录

3.当我编辑etc / module.xml时

php bin/magento module:enable
php bin/magento setup:upgrade

4,当我编辑etc / module.xml时

5,当我编辑etc / di.xml时

6,当我编辑etc / webapi.xml时

7,当我对etc / adminhtml / system.xml 进行xml更改时,缓存刷新足够了:

php bin/magento cache:flush

CSS和JS更改:-刷新缓存和 php bin/magento setup:static-content:deploy


据我了解,setup:upgrade可以作为替代执行module:enable
约书亚洪水

是否有可用的脚本将这些命令合二为一?
snh_nl

2

如果您使用的是开发人员模式,则compil在修改时不需要e xml,您只能制作一个setup:upgrade

对于其他修改为 cssphtmljs,只是flush cache,你不需要部署静态内容


不,我们不需要运行setup:upgradexml修改。欲了解更多信息,请参考上方答案:)
帕特尔王子(Prince Patel)

1

只需运行bin / magento setup:upgrade 在数据库上进行修改,就。

例如,如果您正在(以编程方式)创建属性,新模块,版本升级等。

因此,要记住的基本规则是,如果您知道您的代码将对数据库进行修改,请运行setup:upgrade命令。


是否php bin/magento setup:upgrade会使设置CRON JOB过时?我很困惑,因为它是记录在这里作为一个cronjob运行everye分钟devdocs.magento.com/guides/v2.3/comp-mgr/module-man/...
snh_nl

1

我创建了一个bash文件,该文件可以自动执行该过程:

在您的magento文件夹中,键入“ vi magento_bash”,然后复制并粘贴以下代码。通过转义和:wq保存文件,然后输入希望对您有所帮助。注意:以下文件一次只执行一个命令。

#!/bin/sh

mainmenu()
{

echo 'Press 1 if you have created a new module'

echo 'Press 2 if you have changed HTML, CSS, JS..'

echo 'Press 3 if you have made changes like add new dependency in __construct() or changes in di.xml'

echo 'Press 4 if you have made changes like admin configuration, layout xml, ui component, phtml'

read -n 1 -p "Input Selection:" mainmenuinput

if [ "$mainmenuinput" = "1" ];
then
    cd src
    php bin/magento setup:upgrade
elif [ "$mainmenuinput" = "2" ];
then
    cd src
    php bin/magento s:s:d en_AU en_US
elif [ "$mainmenuinput" = "3" ];
then
    cd src
    php bin/magento setup:di:compile
elif [ "$mainmenuinput" = "4" ];
then
    cd src
    php bin/magento cache:flush
else
    echo 'You have selected an invalid selection'
fi
}

mainmenu

ssd命令后面的en_AU en_US?
snh_nl

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.