Quando usare esattamente bin php / magento setup: upgrade


10

Ci sono molte situazioni in cui cambio alcuni file nel mio modulo in modalità sviluppatore ma le modifiche non sono avvenute in frontend fino a quando non eseguo php bin/magento setup:upgrade

Volevo solo sapere quando dovremmo eseguire il setup:upgradecomando e qual è lo scopo di esso in Magento 2?

È così strano per me, perché ogni volta che sto apportando alcune modifiche, non saranno visibili fino a quando non avrò eseguito il comando setup: upgrade. Anche se cancello var / cache, non è ancora visibile. Qualcuno sa qualche motivo per questo?

Risposte:


17

Se hai abilitato uno o più moduli, dovrai eseguire magento setup:upgradeper aggiornare lo schema del database.

Per impostazione predefinita, magento setup:upgradecancella il codice compilato e la cache. In genere, si utilizza magento setup:upgradeper aggiornare i componenti e ogni componente può richiedere classi compilate diverse.

magento setup:upgrade --keep-generated

L' --keep-generatedopzione opzionale deve essere utilizzata solo in circostanze limitate da integratori di sistemi esperti. --keep-generatednon dovrebbe mai essere utilizzato in un ambiente di sviluppo.

L'uso improprio di questo parametro facoltativo può causare errori durante l'esecuzione del codice.

AGGIORNAMENTO (07/10/17)

Come mi ha chiesto il creatore dell'argomento:

Ma è così strano per me, perché ogni volta che sto apportando alcune modifiche, non saranno visibili fino a quando non avrò eseguito il comando setup: upgrade. Anche se cancello var / cache, non è ancora visibile. Conosci qualche motivo per questo?

var/cachein Magento 2 non è sufficiente per rendere visibili modifiche come Magento 1. In Magento 2, dovrai cancellare var/generation(e var/dise hai compilato il codice) dopo aver apportato modifiche all'interno del tuo codice, specialmente ogni volta che cambi qualcosa all'interno del costruttore.

Dovrai anche cancellare var/view_preprocessedse cambi qualcosa all'interno del tuo file modello (.phtml)

Il resto andrà a var/cacheevar/full_page_cache

Spero che sia di aiuto.


Signore, grazie per la risposta. Ma è così strano per me, perché ogni volta che sto apportando alcune modifiche, non saranno visibili fino a quando non avrò eseguito il comando setup: upgrade. Anche se cancello var / cache, non è ancora visibile. Conosci qualche motivo per questo?
Michel Gokan,

Forse non stai cancellando abbastanza directory. Forse il setup:upgradecomando li sta cancellando per te. Guarda questa pagina per riferimento. Suppongo che il tuo modulo sia abilitato; in caso contrario, ciò causa anche problemi.
Steve Johnson,

@MichelGokan Ho aggiornato la risposta.
Toan Nguyen il

Dobbiamo eseguire l'installazione: aggiornare dopo aver disabilitato le estensioni?
Webninja,

@Webninja Sì, lo facciamo.
Toan Nguyen il

0

Quando si abilitano i moduli, modificare la versione dei moduli che sarà necessario eseguire magento setup:upgradeper aggiornare lo schema del database.

In altri casi quando si aggiungono nuovi dati nei costruttori di classi, è necessario eseguire magento setup:upgradeperché cancella la cartella var / generation. Per capirlo, rimuovere le autorizzazioni di scrittura e lettura per la varcartella ed eseguire il comandomagento setup:upgrade

Verrà visualizzato un messaggio di errore come questo
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. che significa che questo comando sta cancellando la cartella var / generation. Se si desidera ottenere le modifiche senza eseguire il magento setup:upgradecomando, è necessario cancellare queste tre cartelle

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

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.