Magento 2: quando dovrei eseguire quali comandi?


20

Lavoro con Magento 2 da 2 mesi. Mi sono reso conto che sto usando bin/magento setup:upgradetroppo. Credo che non so quando devo eseguire quel comando.

Ecco le situazioni in cui eseguo il comando di cui sopra.

  • Quando creo un nuovo modulo,
  • Quando aggiungo qualcosa alla directory di installazione,
  • Quando modifico etc/module.xml,
  • Quando modifico etc/di.xml,
  • Quando modifico etc/webapi.xml,
  • Quando modifico etc/adminhtml/system.xml

Domanda: in quali situazioni è assolutamente necessario eseguire il bin/magento setup:upgradecomando?

( Il motivo che sto chiedendo è che ci vuole del tempo per completare quel comando. Credo che possa davvero migliorare la produttività se smetto di usarlo inutilmente. )

Risposte:


43

Maggiori informazioni su: Blog di Mageprince

Hai solo bisogno di eseguire il setup:upgradecomando

1. Quando sono state apportate modifiche allo script di installazione (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Se si installa Magento per la prima volta.

3. Al momento dell'installazione del nuovo modulo

4. Dopo l'aggiornamento della versione di Magento.

Cosa farà il setup:upgradecomando

1) Controlla la versione del modulo nella setup_moduletabella

2) Se la versione non è disponibile o la nuova versione è stata aggiunta in module.xml, eseguirà lo script di installazione e aggiungerà l'ultimo numero di versione nella tabella

Se hai apportato modifiche ai file HTML, CSS, JS, ... devi eliminare determinati file modificati dalla pub/staticcartella o eseguire questo comando

php bin / magento setup: static-content: deploy

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

Se hai apportato modifiche come aggiungere una nuova dipendenza in __construct () o modifiche indi.xml , devi eliminare i file modificati dalla var/generationcartella o eseguire questo comando

php bin / magento setup: di: compilare

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

Se hai apportato modifiche alla configurazione dell'amministratore, al layout xml, al componente ui, al phtml, ... devi solo pulire o svuotare la cache

php bin / magento cache: flush

Forma breve: php bin / magento c: f


3

1.Quando creo un nuovo modulo:

2.Quando aggiungo qualcosa alla directory di installazione

3.Quando modifico etc / module.xml

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

4.Quando modifico etc / module.xml,

5.Quando modifico etc / di.xml,

6.Quando modifico etc / webapi.xml,

7.Quando modifico etc / adminhtml / system.xml per le modifiche xml, lo svuotamento della cache è più che sufficiente:

php bin/magento cache:flush

Modifiche css e js: - flush cache e php bin/magento setup:static-content:deploy


A quanto ho capito, setup:upgradepuò essere eseguito in alternativa a module:enable.
Joshua Flood,

Sono disponibili degli script che combinano questi comandi in 1?
snh_nl

2

Se lavori con la modalità sviluppatore non devi compile quando modifichi xml, puoi fare solo un setup:upgrade.

E per gli altri modifiche come css, phtml, js, solo flush cache, non c'è bisogno di distribuire contenuti statici .


No, non è necessario eseguire la setup:upgrademodifica XML. Per maggiori dettagli consultare la risposta superiore :)
Prince Patel,

1

Devi semplicemente eseguire l'installazione bin / magento: esegui l'aggiornamento ogni volta che esegui modifiche sul database.

Ad esempio se si stanno creando attributi (programmaticamente), nuovi moduli, aggiornamenti di versione ecc.

Quindi la regola di base da tenere a mente è, se sai che il tuo codice farebbe delle modifiche sul database, quindi esegui il comando setup: upgrade.


Non php bin/magento setup:upgraderendere il lavoro di installazione CRON obsoleto? Sono confuso perché è registrato qui come cronjob per eseguire ogni minuto devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl

1

Ho creato un file bash che potrebbe automatizzare il processo:

nella tua cartella magento digita 'vi magento_bash' copia e incolla il codice qui sotto. salva il file scappando e: wq e inserisci la speranza che questo aiuti. Nota: il file seguente richiede solo un comando alla volta.

#!/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 dietro il comando ssd?
snh_nl

0

Quando si distribuisce il codice manualmente. Tutti i metodi sopra suggeriti sono abbastanza buoni per risparmiare tempo.

Se hai la distribuzione automatica tramite Jenkins o altri strumenti, dovresti eseguire tutti i comandi poiché lo strumento non sa cosa hai fatto e quale file è stato modificato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.