Quand utiliser exactement la configuration de php bin / magento: mise à niveau

10

Il y a beaucoup de situations dans lesquelles je modifie certains fichiers dans mon module en mode développeur mais les modifications n'ont pas eu lieu en frontend jusqu'à ce que je lance php bin/magento setup:upgrade

Je voulais juste savoir quand exécuter la setup:upgradecommande et quel est son objectif dans Magento 2?

C'est tellement étrange pour moi, car chaque fois que je fais des changements, ils ne seront visibles qu'après avoir exécuté la commande setup: upgrade. Même si je supprime le var / cache, ce n'est toujours pas visible. Quelqu'un connaît-il une raison à cela?

Michel Gokan
la source

Réponses:

17

Si vous avez activé un ou plusieurs modules, vous devrez exécuter magento setup:upgradepour mettre à jour le schéma de la base de données.

Par défaut, magento setup:upgradeefface le code compilé et le cache. En règle générale, vous utilisez magento setup:upgradepour mettre à jour des composants et chaque composant peut nécessiter différentes classes compilées.

magento setup:upgrade --keep-generated

L' --keep-generatedoption facultative ne doit être utilisée que dans des circonstances limitées par des intégrateurs de systèmes expérimentés. --keep-generatedne doit jamais être utilisé dans un environnement de développement.

Une mauvaise utilisation de ce paramètre facultatif peut provoquer des erreurs lors de l'exécution du code.

MISE À JOUR (07/10/17)

Comme me l'a demandé le créateur du sujet:

Mais c'est tellement étrange pour moi, car chaque fois que je fais des changements, ils ne seront visibles qu'après avoir exécuté la commande setup: upgrade. Même si je supprime le var / cache, ce n'est toujours pas visible. Connaissez-vous une raison à cela?

var/cachedans Magento 2 ne suffit pas pour rendre les modifications visibles comme Magento 1. Dans Magento 2, vous devrez effacer var/generation(et var/disi vous avez compilé du code) après avoir apporté des modifications à l'intérieur de votre code, en particulier chaque fois que vous changez quelque chose à l'intérieur du constructeur.

Vous devrez également effacer var/view_preprocessedsi vous modifiez quelque chose dans votre fichier modèle (.phtml)

Le reste ira à var/cacheetvar/full_page_cache

J'espère que cela t'aides.

Toan Nguyen
la source
Monsieur, merci pour votre réponse. Mais c'est tellement étrange pour moi, car chaque fois que je fais des changements, ils ne seront visibles qu'après avoir exécuté la commande setup: upgrade. Même si je supprime le var / cache, ce n'est toujours pas visible. Connaissez-vous une raison à cela?
Michel Gokan
Peut-être que vous n'effacez pas suffisamment de répertoires. Peut-être que la setup:upgradecommande les efface pour vous. Regardez cette page pour référence. Je suppose que votre module est activé; sinon, cela cause également des problèmes.
Steve Johnson
@MichelGokan J'ai mis à jour la réponse.
Toan Nguyen
Avons-nous besoin d'exécuter le setup: upgrade après avoir désactivé les extensions?
Webninja
@Webninja Oui, nous le faisons.
Toan Nguyen
0

Lorsque vous activez les modules, changez la version des modules que vous devrez exécuter magento setup:upgradepour mettre à jour le schéma de la base de données.

Dans d'autres cas, lorsque vous ajoutez de nouvelles données dans vos constructeurs de classe, vous devez exécuter magento setup:upgradecar il efface le dossier var / generation. Pour le comprendre, supprimez les autorisations d'écriture et de lecture pour le vardossier et exécutez la commandemagento setup:upgrade

Vous obtiendrez un message d'erreur comme celui-ci
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. signifiant que cette commande efface le dossier var / generation. Si vous souhaitez obtenir vos modifications sans exécuter de magento setup:upgradecommande, vous devez effacer ces trois dossiers

rm -rf var/cache/* var/page_cache/* var/generation/*

Ledian Hymetllari
la source