Magento 2: ¿Cuándo debo ejecutar qué comandos?


20

He estado trabajando con Magento 2 durante 2 meses. Me di cuenta de que estoy usando bin/magento setup:upgradedemasiado. Creo que no sé cuándo tengo que ejecutar ese comando.

Estas son las situaciones en las que ejecuto el comando mencionado anteriormente.

  • Cuando creo un nuevo módulo,
  • Cuando agrego algo al directorio de instalación,
  • Cuando editar etc/module.xml,
  • Cuando editar etc/di.xml,
  • Cuando editar etc/webapi.xml,
  • Cuando edito etc/adminhtml/system.xml

Pregunta: ¿ En qué situaciones es absolutamente necesario ejecutar el bin/magento setup:upgradecomando?

( La razón por la que pregunto es que lleva algún tiempo terminar ese comando. Creo que realmente puede mejorar la productividad si dejo de usarlo innecesariamente ) .

Respuestas:


42

Leer más en: Blog de Mageprince

Solo necesitas ejecutar el setup:upgradecomando

1. Cuando realizó cambios en el script de instalación (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Si instala Magento por primera vez.

3. En el momento de la instalación del nuevo módulo

4. Después de actualizar la versión de magento.

¿Qué hará el setup:upgradecomando

1) Verifique la versión del módulo en la setup_moduletabla

2) Si la versión no está disponible o se agrega una nueva versión en module.xml, ejecutará el script de configuración y agregará el último número de versión en la tabla

Si realizó cambios en archivos HTML, CSS, JS, ... debe eliminar determinados archivos modificados de la pub/staticcarpeta o ejecutar este comando

php bin / magento setup: static-content: deploy

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

Si realizó cambios como agregar nueva dependencia en __construct () o cambios endi.xml , debe eliminar los archivos modificados de la var/generationcarpeta o ejecutar este comando

php bin / magento setup: di: compile

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

Si realizó cambios en la configuración del administrador, el diseño xml, el componente ui, phtml, ... los archivos solo necesita limpiar o vaciar la caché

php bin / magento cache: flush

Forma abreviada: php bin / magento c: f


3

1.Cuando creo un nuevo módulo:

2.Cuando agrego algo al directorio de instalación

3.Cuando edito etc / module.xml

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

4.Cuando edito etc / module.xml,

5.Cuando edito etc / di.xml,

6.Cuando edito etc / webapi.xml,

7. Cuando edito etc / adminhtml / system.xml para cambios xml, el vaciado de caché es más que suficiente:

php bin/magento cache:flush

css y js cambios: - vaciar caché y php bin/magento setup:static-content:deploy


Por lo que yo entiendo, setup:upgradese puede ejecutar como una alternativa a module:enable.
Joshua Flood

¿Hay alguna secuencia de comandos disponible que combine estos comandos en 1?
snh_nl

2

Si trabaja con el modo desarrollador no necesita compile cuando modifica xml, solo puede hacer a setup:upgrade.

Y para los demás modificaciones como css, phtml, js, única flush cache, no es necesario para desplegar el contenido estático .


No, no necesitamos ejecutar la setup:upgrademodificación xml. Para más detalles, consulte la respuesta superior :)
Prince Patel

1

Simplemente necesita ejecutar la configuración bin / magento: actualice siempre que realice modificaciones en la base de datos.

Por ejemplo, si está creando atributos (programáticamente), nuevos módulos, actualizaciones de versiones, etc.

Entonces, la regla básica a tener en cuenta es que, si sabe que su código haría modificaciones en la base de datos, ejecute el comando setup: upgrade.


¿Hace php bin/magento setup:upgradela configuración CRON JOB obsoleta? Estoy confundido porque está registrado aquí como un cronjob para ejecutar devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl el

1

He creado un archivo bash que podría automatizar el proceso:

en su carpeta de magento escriba 'vi magento_bash' copie y pegue el código a continuación. guarde el archivo escapando y: wq e ingrese espero que esto ayude. Nota: el archivo a continuación solo toma un comando a la 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 detrás del comando ssd?
snh_nl

0

Cuando está implementando su código manualmente. Todos los métodos sugeridos anteriormente son lo suficientemente buenos como para ahorrar tiempo.

Si tiene una implementación automática a través de Jenkins u otras herramientas, debe ejecutar todos los comandos ya que la herramienta no sabe qué hizo y qué archivo se modificó.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.