Magento 2: Quand dois-je exécuter quelles commandes?


20

Je travaille avec Magento 2 depuis 2 mois maintenant. J'ai réalisé que j'utilisais bin/magento setup:upgradebeaucoup trop. Je pense que je ne sais pas quand je dois exécuter cette commande.

Voici les situations dans lesquelles j'exécute la commande susmentionnée.

  • Lorsque je crée un nouveau module,
  • Lorsque j'ajoute quelque chose au répertoire d'installation,
  • Lorsque je modifie etc/module.xml,
  • Lorsque je modifie etc/di.xml,
  • Lorsque je modifie etc/webapi.xml,
  • Quand j'édite etc/adminhtml/system.xml

Question: Dans quelles situations est-il absolument nécessaire d'exécuter la bin/magento setup:upgradecommande?

( La raison pour laquelle je demande, c'est qu'il faut un certain temps pour terminer cette commande. Je pense que cela peut vraiment améliorer la productivité si j'arrête de l'utiliser inutilement. )

Réponses:


43

En savoir plus sur: Blog Mageprince

Il vous suffit d'exécuter la setup:upgradecommande

1. Lorsque vous avez apporté des modifications au script de configuration (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Si vous installez Magento pour la première fois.

3. Au moment de l'installation du nouveau module

4. Après la mise à niveau de la version magento.

Que fera la setup:upgradecommande

1) Vérifier la version du module dans le setup_moduletableau

2) Si la version n'est pas disponible ou une nouvelle version ajoutée dans module.xml, il exécutera le script de configuration et ajoutera le dernier numéro de version dans le tableau

Si vous avez apporté des modifications aux fichiers HTML, CSS, JS, ... vous devez supprimer des fichiers modifiés particuliers du pub/staticdossier ou exécuter cette commande

configuration de php bin / magento: contenu statique: déployer

Forme courte: php bin / magento s: s: d

Si vous avez apporté des modifications comme ajouter une nouvelle dépendance dans __construct () ou des modifications dansdi.xml , vous devez supprimer les fichiers modifiés du var/generationdossier ou exécuter cette commande

configuration de php bin / magento: di: compile

Forme courte: php bin / magento s: d: c

Si vous avez apporté des modifications à la configuration admin, à la mise en page xml, au composant ui, au phtml, ... vous devez uniquement nettoyer ou vider le cache

cache php bin / magento: vidage

Forme courte: php bin / magento c: f


3

1.Lorsque je crée un nouveau module:

2.Lorsque j'ajoute quelque chose au répertoire d'installation

3.Lorsque je modifie etc / module.xml

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

4.Lorsque je modifie etc / module.xml,

5.Lorsque je modifie etc / di.xml,

6.Lorsque je modifie etc / webapi.xml,

7.Lorsque je modifie etc / adminhtml / system.xml pour les modifications xml, le vidage du cache est plus que suffisant:

php bin/magento cache:flush

changements css et js: - vider le cache et php bin/magento setup:static-content:deploy


Pour autant que je comprends, setup:upgradepeut être exécuté comme une alternative à module:enable.
Joshua Flood

Existe-t-il des scripts combinant ces commandes en 1?
snh_nl

2

Si vous travaillez avec le mode développeur, vous n'avez pas besoin d' compile lorsque vous modifiez xml, vous ne pouvez faire qu'un setup:upgrade.

Et pour d' autres modifications que css, phtml, js, seulement flush cache, vous avez besoin de ne pas déployer du contenu statique .


Non, nous n'avons pas besoin de courir setup:upgradepour la modification xml. Pour plus de détails, reportez-vous à la réponse supérieure :)
Prince Patel

1

Il suffit d'exécuter la configuration de bin / magento: mettez à niveau chaque fois que vous effectuez une modification sur la base de données.

Par exemple, si vous créez des attributs (par programme), de nouveaux modules, des mises à niveau de version, etc.

Donc, la règle de base à garder à l'esprit est que si vous savez que votre code effectuerait des modifications sur la base de données, exécutez la commande setup: upgrade.


Ne php bin/magento setup:upgradefaire le cron Config obsolète? Je suis confus car il est connecté ici en tant que cronjob pour exécuter toutes les minutes devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl

1

J'ai créé un fichier bash qui pourrait automatiser le processus:

dans votre dossier magento, tapez 'vi magento_bash' copiez et collez le code ci-dessous. enregistrer le fichier en s'échappant et: wq et entrez espérons que cela aide. Remarque: le fichier ci-dessous ne prend qu'une seule commande à la fois.

#!/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 derrière la commande ssd?
snh_nl

0

Lorsque vous déployez votre code manuellement. Toutes les méthodes suggérées ci-dessus sont suffisantes pour gagner du temps.

Si vous avez un déploiement automatique via Jenkins ou d'autres outils, vous devez exécuter toutes les commandes car l'outil ne sait pas ce que vous avez fait et quel fichier a été modifié.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.