Magento 2: Actualización de una instalación de "Meta Package"

11

Hace un tiempo, instalé Magento 2 a través del metapaquete del compositor . Esto también se conoce como la instalación del integrador.

Esto parece haber instalado Magento CE 2.0.1. ¿Hay alguna manera de actualizar esta versión al último Magento CE 2.0.3? Me doy cuenta de que podría actualizar el composer.jsonpara que el 2.0.1 aquí

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

se convierte

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

Sin embargo, eso echaría de menos archivos como

app/etc/NonComposerComponentRegistration.php 

Además de cualquier actualización del archivo composer.json.

¿Es posible actualizar una versión de Magento 2 instalada con el metapaquete? ¿O no es esta la intención de los metapaquetes?

Alan Storm
fuente
alankent.me/2016/03/31/… podría tener alguna información útil. Creo que NonComposerComponentRegistration.php se actualizará cuando realice la actualización debido al complemento de instalación de magento para Composer. Si hay un nuevo módulo 'magento2-base', reemplazará los archivos previamente instalados por el módulo base. El artículo recomienda "usar git" para preservar los cambios locales. Puede ajustar el archivo predeterminado github.com/magento/magento2/blob/develop/app/etc/… , que incluye el paquete en el paquete "magento2-base".
Alan Kent
"Creo que NonComposerComponentRegistration.php se actualizará", eso es negativo, o, al menos, en mi caso específico de 2.0.1 a 2.0.3, la actualización del compositor no instaló NonComposerComponentRegistration.php y no actualizó la aplicación /etc/di.xml.
Alan Storm
Puede actualizar el metapaquete con Actualización del sistema o desde la línea de comandos. Advertencia en este momento estamos reemplazando 2.0.3 con 2.0.4 y el acceso repo.magento.comestá bloqueado. Espera un anuncio. Paso 1, ejecuta composer require <string> <version> --noupdate(verifica la sintaxis). Paso 2, corre composer update. Paso 3, correbin/magento setup:upgrade
Steve Johnson
@SteveJohnson ¿Cómo se actualizarán los archivos fuera de vendor?
Alan Storm

Respuestas:

3

Acabo de ajustar mi composer.jsonarchivo para usar 2.0.4 en lugar de 2.0.2 (a mano), y luego ejecuté composer updatey php bin/magento setup:upgrade. Trabajado sin problemas aquí.

Creo que el paquete de instalación de Magento Composer maneja la instalación de archivos en las app/carpetas, etc., que también actualiza las cosas en la actualización. Pero, esta última parte es solo una suposición, ya que no he tenido que depurarla.

stefandoorn
fuente
@alanstorm, ¿ayuda alguna de estas respuestas?
Steve Johnson el
@stefandoorn, ¿puede abrir el archivo app/etc/NonComposerComponentRegistration.phpy confirmar el año de los derechos de autor
Kristof en Fooman el
/ ** * Copyright © 2016 Magento. Todos los derechos reservados. * Consulte COPYING.txt para obtener detalles de la licencia. * /
stefandoorn
@ KristofatFooman Ver arriba.
stefandoorn
2

Actualmente no puedo probarlo, ya que el repositorio del compositor de connect está roto, pero espero que siga siendo útil.

Ese es mi composer.jsonpropio proyecto https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Cambié recientemente a "magento/product-community-edition": "^2.0"para poder actualizar con un simple composer update --with-dependencies magento/product-community-editioncomando. Siempre nombro explícitamente lo que debe actualizarse, para no mezclarlo con los otros paquetes que necesito además de magento, pero por lo tanto necesito el --with-dependenciesargumento.

Una parte muy importante de este flujo de trabajo es confirmar el composer.lockarchivo después de cada actualización (probada con éxito). Como ve que la diferencia del archivo de bloqueo es demasiado grande para GitHub, es el resultado de todas las actualizaciones de dependencia y la razón por la que no debe mezclar una actualización de Magento con una actualización de otra cosa.

Como puede ver, he definido los archivos por NonComposerComponentRegistrationmí mismo, puede tener varios de ellos. La desventaja de mi enfoque es que, cuando composer.jsonocurren cambios en el proyecto , debe aplicarlos manualmente.

Cuando preguntó sobre la actualización del NonComposerComponentRegistrationarchivo, todavía hay algunos "pocos" archivos que se copian del proveedor en el directorio de destino, por eso lo nombré explícitamente buildpara no mezclar lo propio con lo generado / copiado.

Espero que ayude, incluso si esta es una configuración bastante única de M2.

Flyingmana
fuente