Cómo actualizar Magento2 usando Composer

38

Parece que no puedo actualizar mi magento2 ce usando composer. No encuentro ninguna actualización, la única que encontró fue 'fabpot'.

Pensé que este era el objetivo de una configuración de compositor, entonces, ¿por qué querría usar el backend como se explica en la documentación: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

¿O me estoy perdiendo algo?

Gracias de antemano por cualquier ayuda.


EDITAR:

Seguí la documentación oficial para instalar Magento2 a través del compositor, como se describe aquí: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

El problema es que el archivo composer.json que se extrae con el comando: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>definió magento en la sección requerida de .json:

"require": {
    "magento/product-community-edition": "2.0.0",
    "composer/composer": "@alpha",
    "firegento/magesetup2": "dev-develop",
    "splendid/de_de": "^0.0.1"
},

Como puede ver, se especifica la versión 2.0.0.

Para que la actualización funcione, tuve que cambiar manualmente esa línea en el archivo .json de la siguiente manera:

 "magento/product-community-edition": "2.*",

Ahora se ejecutan composer updatetodos los módulos actualizados de la versión 100.0.2 a 100.0.3.

Tenga en cuenta que esto todavía arroja una excepción de error debido a lo siguiente:

[ErrorException]                             
  Source /home/dev/git/mysite/vendor/magento/magento2-base/app/design/frontend/Magento does not exist

Ahora parece que faltan bastantes elementos esenciales, por ejemplo, el archivo bin / magento.

¿Alguien tiene alguna idea de cómo se hace correctamente para que realmente funcione?

tecjam
fuente
Si instaló 2.0 a través de Packagist, hay un problema con 2.0.1. Agregue repo.magento.com a su composer.json e información de autenticación relacionada en el archivo auth.json.
Maddy
Actualizar magento 2 con Composer requiere muchos conocimientos técnicos sobre la línea de comandos. Si no tiene conocimientos técnicos, puede actualizar a través de admin, magento commerce. Algunas veces el método del compositor falló debido a la falta de dependencias.
D. Joes
Es cierto, intente esto magecomp.com/blog/upgrade-magento-2-x-to-latest-version
Gaurav Jain

Respuestas:

58

Edite el archivo composer.json en la carpeta raíz y cambie la versión de magento en la línea 5:

"version": "2.0.1",

y bajo "requerir"

"require": {
"magento/product-community-edition": "2.0.1",

Ahora ejecuta:

composer update

Entonces corre:

php bin/magento setup:upgrade

Y finalmente, vuelva a implementar los archivos estáticos, que para mí es este comando:

php bin/magento setup:static-content:deploy de_DE en_US

Eso funcionó para mí.

tecjam
fuente
Muchas gracias tecjam, ¡esto me ayudó mucho! Estaba buscando una manera de actualizar durante aproximadamente una semana. ¡Saludos desde Alemania!
Java_Waldi
Gran respuesta. Los pasos dados son muy simples de seguir.
Maniprakash Chinnasamy
55
No es necesario vaciar el directorio de proveedores.
mniess
Cuando se ejecuta el comando de actualización, muestra el error: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] El comando "compositor" no está definido.
Lovely Setia
42

Actualización / actualización a Magento 2.0.5 (vía composer)

php bin/magento maintenance:enable
composer require magento/product-community-edition 2.0.5 --no-update
composer update
rm -rf var/di var/generation
php bin/magento cache:flush
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento indexer:reindex
php bin/magento maintenance:disable

Después de la actualización, verifique su versión de Magento con el siguiente comando:

php bin/magento --version

Actualización a Magento 2.3.x

Los comandos anteriores funcionan bien al actualizar Magento a 2.2.x.

Para actualizar a Magento 2.3.x, debe seguir algunos pasos más.

Aquí está la guía paso a paso para actualizar Magento a 2.3.x:

Habilitar modo de mantenimiento

php bin/magento maintenance:enable

Especificar paquetes de Magento

composer require magento/product-community-edition=2.3.0 --no-update

Especificar paquetes adicionales

composer require --dev phpunit/phpunit:~6.2.0 friendsofphp/php-cs-fixer:~2.10.1 lusitanian/oauth:~0.8.10 pdepend/pdepend:2.5.2 sebastian/phpcpd:~3.0.0 squizlabs/php_codesniffer:3.2.2 --no-update

Eliminar paquetes no utilizados

composer remove --dev sjparkinson/static-review fabpot/php-cs-fixer --no-update

Actualizar carga automática

Abra composer.jsony edite la "autoload": "psr-4"sección para incluir "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/":

"autoload": {
    "psr-4": {
        "Magento\\Framework\\": "lib/internal/Magento/Framework/",
        "Magento\\Setup\\": "setup/src/Magento/Setup/",
        "Magento\\": "app/code/Magento/",
        "Zend\\Mvc\\Controller\\": "setup/src/Zend/Mvc/Controller/"
    },
    ...
}

Aplicar actualizaciones

composer update

Limpia el caché de Magento

php bin/magento cache:clean

Borrar manualmente cachés y contenido generado

Borre los subdirectorios vary generated:

rm -rf <Magento install dir>/var/cache/*
rm -rf <Magento install dir>/var/page_cache/*
rm -rf <Magento install dir>/generated/code/*

Si utiliza un almacenamiento en caché que no sea el sistema de archivos, como Redis o Memcached, también debe borrar manualmente el caché allí.

Actualice el esquema y los datos de la base de datos.

php bin/magento setup:upgrade

Deshabilitar modo de mantenimiento

php bin/magento maintenance:disable

Finalmente, verifique su versión de Magento

php bin/magento --version

Leer más: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html

Mukesh Chapagain
fuente
2
Esto funcionó bien :)
Arvind07
1
¿No necesitas hacer un n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost
1
Para mí, el comando lo composer requireestropeó todo. magentotambién falta el comando bin.
Dyin
1
Después de seguir sus pasos, dice "Magento es compatible con 7.0.2, 7.0.4 y 7.0.6 o posterior. Lea devdocs.magento.com/guides/v1.0/install-gde/… " Tengo PHP 7.1.11
Wasiq Shahrukh
3
Encontré esta respuesta más útil que otras. Ya lo usé 4 veces actualizando varias versiones menores de M2 ​​sin ningún problema. ¡Vota esto!
Kalpesh
15

Al actualizar a través de Composer, puede elegir la versión de la que necesita actualizar a través de una actualización de Composer. Por ejemplo:

composer require magento/product-community-edition 2.1.2 --no-update

Se puede ejecutar el mismo comando si se usa Enterprise. Por ejemplo:

composer require magento/product-enterprise-edition 2.0.6 --no-update

Después de ejecutar el comando relevante, ejecute

composer update

Cuando el compositor haya terminado, actualice su base de datos ejecutando el comando:

php bin/magento setup:upgrade 

Como siempre, haga una copia de seguridad de su base de datos y use una herramienta de versiones como git para protegerse de la actualización que no va a planear.

Richard Cripps
fuente
Hola, remito tu comentario y recibo un error. Puedes ver el error a continuación. El paquete solicitado magento / product-enterprise-edition 2.0.6 existe como magento / product-enterprise-edition [2.0.2] pero su restricción los rechaza. ¿Puedes ayudarme a resolver este problema?
Kartik Asodariya
7

Para actualizar Magento 2.0.x con datos de muestra , seguí estos pasos (también funciona para actualizar a 2.1 RC):

  1. Aplique esta confirmación manualmente (es una corrección de errores para los datos de muestra que se publican con 2.1)
  2. Restablecer los módulos de datos de muestra en Magento

    bin/magento sampledata:reset
  3. Actualice composer.json sin actualizar inmediatamente las dependencias (esto provocaría un conflicto porque las versiones antiguas del módulo magento todavía están bloqueadas). Para 2.0.7:

    composer require --no-update magento/product-community-edition ~2.0.7

    o para el último candidato de versión 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [solo si actualiza a> = 2.1] Elimine los módulos de datos de muestra de composer.json:

    "magento/module-bundle-sample-data": "100.0.*",
    "magento/module-theme-sample-data": "100.0.*",
    "magento/module-widget-sample-data": "100.0.*",
    "magento/module-catalog-sample-data": "100.0.*",
    "magento/module-customer-sample-data": "100.0.*",
    "magento/module-cms-sample-data": "100.0.*",
    "magento/module-catalog-rule-sample-data": "100.0.*",
    "magento/module-sales-rule-sample-data": "100.0.*",
    "magento/module-review-sample-data": "100.0.*",
    "magento/module-tax-sample-data": "100.0.*",
    "magento/module-sales-sample-data": "100.0.*",
    "magento/module-grouped-product-sample-data": "100.0.*",
    "magento/module-downloadable-sample-data": "100.0.*",
    "magento/module-msrp-sample-data": "100.0.*",
    "magento/module-configurable-sample-data": "100.0.*",
    "magento/module-product-links-sample-data": "100.0.*",
    "magento/module-wishlist-sample-data": "100.0.*",
    "magento/module-swatches-sample-data": "100.0.*",
    "magento/sample-data-media": "100.0.*",
    "magento/module-offline-shipping-sample-data": "100.0.*",
  5. Ejecute la actualización real del compositor:

    composer update
  6. [solo si actualiza a> = 2.1] Vuelva a instalar los datos de muestra (es posible que deba volver a aplicar el parche desde (2)):

    bin/magento sampledata:deploy
Fabian Schmengler
fuente
cuando ejecuto el comando, me composer updatepide nombre de usuario y contraseña, qué nombre de usuario y contraseña son, si me pueden guiar
amit_game
Hola @amit_game: por alguna razón, el repositorio repo.magento.com requiere autenticación. Puede crear sus claves de autenticación en marketplace.magento.com utilizando la siguiente guía: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam
0

Paso a paso, ejecute el siguiente comando

composer require magento/product-community-edition 2.1.6 --no-update
composer update
rm -rf var/di var/generation
php bin/magento cache:flush
php bin/magento setup:upgrade
php bin/magento setup:di:compile(Optional)
php bin/magento indexer:reindex
chmod -R 777 var
php bin/magento setup:static-content:deploy

Después de la actualización, verifique su versión de Magento con el siguiente comando:

php bin/magento --version
Ravindrasinh Zala
fuente
0

Quizás te estás perdiendo algo. Primero, conecta tu tienda con SSH. Ahora ve al directorio raíz de tu tienda.

Ejecute todos los comandos uno por uno:

composer require magento/product-community-edition 2.1.3 --no-update

composer update

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

php bin/magento cache:clean

php bin/magento cache:flush

php bin/magento setup:upgrade

php bin/magento setup:di:compile

php bin/magento indexer:reindex
Syed Muneeb Ul Hasan
fuente
Ya respondí mi propia pregunta, gracias. Como puede ver, fue un problema con la primera versión de magento 2.0: la documentación y los problemas se han solucionado desde entonces. Además, nunca haría una actualización del compositor directamente en el servidor, no importa en la tienda en vivo.
tecjam
0

Uno puede actualizar magento 2 usando los dos métodos básicos, uno es desde el panel de administración y otro está usando composer.

rohimic
fuente