Magento 2: Quando devo executar quais comandos?


20

Trabalho com Magento 2 há 2 meses. Percebi que estou usando bin/magento setup:upgradedemais. Eu acho que não sei quando tenho que executar esse comando.

Aqui estão as situações em que eu executo o comando mencionado acima.

  • Quando eu crio um novo módulo,
  • Quando adiciono algo ao diretório de instalação,
  • Quando eu edito etc/module.xml,
  • Quando eu edito etc/di.xml,
  • Quando eu edito etc/webapi.xml,
  • Quando eu edito etc/adminhtml/system.xml

Pergunta: Em quais situações é absolutamente necessário executar o bin/magento setup:upgradecomando?

( A razão pela qual estou perguntando é que leva algum tempo para concluir esse comando. Acredito que ele pode realmente melhorar a produtividade se eu parar de usá-lo desnecessariamente. )

Respostas:


42

Leia mais em: Mageprince Blog

Você só precisa executar o setup:upgradecomando

1. Quando você fez alterações no script de instalação (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Se você instalar o Magento pela primeira vez.

3. No momento da instalação do novo módulo

4. Após a atualização da versão magento.

O que fará o setup:upgradecomando

1) Verifique a versão do módulo na setup_moduletabela

2) Se a versão não estiver disponível ou a nova versão tiver sido adicionada no module.xml, ele executará o script de instalação e adicionará o número da versão mais recente na tabela

Se você fez alterações nos arquivos HTML, CSS, JS, ..., é necessário excluir determinados arquivos alterados da pub/staticpasta ou executar este comando

configuração do bin php / magento: static-content: deploy

Forma abreviada: php bin / magento s: s: d

Se você fez alterações como adicionar nova dependência em __construct () ou alteraçõesdi.xml , precisará excluir os arquivos alterados da var/generationpasta ou executar este comando

configuração do bin / magento do php: di: compile

Forma abreviada: php bin / magento s: d: c

Se você fez alterações na configuração do administrador, layout xml, componente da interface do usuário, phtml, ... arquivos, você precisa apenas limpar ou liberar o cache

php bin / cache magento: flush

Forma abreviada: php bin / magento c: f


3

1.Quando crio um novo módulo:

2.Quando adiciono algo ao diretório Setup

3.Quando edito o arquivo etc / module.xml

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

4.Quando edito o arquivo etc / module.xml,

5.Quando edito o arquivo etc / di.xml,

6.Quando edito o arquivo etc / webapi.xml,

7. Quando edito o arquivo etc / adminhtml / system.xml para alterações xml, a liberação do cache é mais do que suficiente:

php bin/magento cache:flush

alterações nas CSS e JS: - liberar cache e php bin/magento setup:static-content:deploy


Tanto quanto eu entendo, setup:upgradepode ser executado como uma alternativa para module:enable.
Joshua Flood

Existem scripts disponíveis combinando esses comandos em 1?
snh_nl

2

Se você trabalha com o modo de desenvolvedor, não precisa compile quando modifica xml, pode fazer apenas a setup:upgrade.

E para os outros modificações, como css, phtml, js, única flush cache, você não precisa implantar conteúdo estático .


Não, não precisamos executar setup:upgradea modificação do xml. Para mais detalhes consulte resposta superior :)
Príncipe Patel

1

Basta executar a configuração bin / magento: atualize sempre que fizer modificações no banco de dados.

Por exemplo, se você estiver criando atributos (programaticamente), novos módulos, atualizações de versão etc.

Portanto, a regra básica a ser lembrada é que, se você souber que seu código faria modificações no banco de dados, execute o comando setup: upgrade.


Será que php bin/magento setup:upgradetornar o trabalho de instalação CRON obsoleto? Estou confuso porque é registrado aqui como um cronjob para executar everye minutos devdocs.magento.com/guides/v2.3/comp-mgr/module-man/...
snh_nl

1

Eu criei um arquivo bash que poderia automatizar o processo:

na sua pasta magento digite 'vi magento_bash' copie e cole o código abaixo. salve o arquivo escapando e: wq e digite espero que isso ajude. Nota: o arquivo abaixo utiliza apenas um comando por vez.

#!/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

en_AU en_US por trás do comando ssd?
snh_nl

0

Quando você está implantando seu código manualmente. Todos os métodos sugeridos acima são bons o suficiente para economizar tempo.

Se você tiver uma implantação automática por meio do Jenkins ou de outras ferramentas, execute todos os comandos, pois a ferramenta não sabe o que você fez e qual arquivo foi alterado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.