Magento 2: mise à niveau d'une installation «Meta Package»

11

Il y a quelque temps, j'ai installé Magento 2 via le méta-package composer . Ceci est également connu sous le nom d'installation de l'intégrateur.

Cela semble avoir installé Magento CE 2.0.1. Existe-t-il un moyen de mettre à niveau cette version vers la dernière version de Magento CE 2.0.3? Je me rends compte que je pourrais mettre à jour le composer.jsonafin que le 2.0.1 ici

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

devient

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

Cependant, cela manquerait des fichiers comme

app/etc/NonComposerComponentRegistration.php 

Ainsi que toute mise à jour du fichier composer.json lui-même.

Est-il possible de mettre à jour une version de Magento 2 installée avec le méta package? Ou n'est-ce pas l'intention des méta-packages?

Alan Storm
la source
alankent.me/2016/03/31/… pourrait avoir des informations utiles. Je crois que NonComposerComponentRegistration.php sera mis à jour lorsque vous effectuez la mise à niveau en raison du plugin d'installation magento pour Composer. S'il existe un nouveau module 'magento2-base', il remplacera les fichiers précédemment installés par le module de base. L'article recommande "use git" pour préserver les changements locaux. Vous pouvez affiner le fichier par défaut github.com/magento/magento2/blob/develop/app/etc/… , qui récupère le package dans le package "magento2-base".
Alan Kent
"Je crois que NonComposerComponentRegistration.php sera mis à jour", c'est négatif - ou, du moins, dans mon cas spécifique, passant de 2.0.1 à 2.0.3, la mise à niveau du compositeur n'a pas installé NonComposerComponentRegistration.php et n'a pas mis à jour l'application /etc/di.xml.
Alan Storm
Vous pouvez mettre à jour le métapaquet avec la mise à niveau du système ou à partir de la ligne de commande. Attention à ce moment, nous remplaçons 2.0.3 par 2.0.4 et l'accès à repo.magento.comest bloqué. Attendez une annonce. Étape 1, exécutez composer require <string> <version> --noupdate(vérifiez la syntaxe). Étape 2, exécutez composer update. Étape 3, exécutezbin/magento setup:upgrade
Steve Johnson
@SteveJohnson Comment cela mettra-t-il à jour les fichiers en dehors de vendor?
Alan Storm

Réponses:

3

J'ai juste ajusté mon composer.jsonfichier pour utiliser 2.0.4 au lieu de 2.0.2 (à la main), puis j'ai couru composer updateet php bin/magento setup:upgrade. Fonctionne parfaitement ici.

Je crois que le package d'installation de Magento Composer gère l'installation des fichiers dans les app/dossiers etc., qui met également à jour les choses lors de la mise à niveau. Mais, cette dernière partie n'est qu'une supposition car je n'ai pas eu à la déboguer.

stefandoorn
la source
@alanstorm, l'une ou l'autre de ces réponses vous aide-t-elle?
Steve Johnson
@stefandoorn pouvez-vous s'il vous plaît ouvrir le fichier app/etc/NonComposerComponentRegistration.phpet confirmer l'année du droit d'auteur
Kristof at Fooman
/ ** * Copyright © 2016 Magento. Tous les droits sont réservés. * Voir COPYING.txt pour les détails de la licence. * /
stefandoorn
@KristofatFooman Voir ci-dessus.
stefandoorn
2

Je ne peux actuellement pas le tester, car le référentiel du compositeur de connect est cassé, mais j'espère qu'il est toujours utile.

C'est composer.jsonmon propre projet https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

J'ai récemment changé "magento/product-community-edition": "^2.0"pour réellement pouvoir mettre à jour avec une simple composer update --with-dependencies magento/product-community-editioncommande. Je nomme toujours explicitement ce qui doit être mis à jour, pour ne pas le mélanger avec les autres packages dont j'ai besoin en plus de magento, mais j'ai donc besoin de l' --with-dependenciesargument.

Une partie très importante de ce flux de travail consiste à valider le composer.lockfichier après chaque mise à jour (testée avec succès). Comme vous voyez que la différence du fichier de verrouillage est trop grande pour GitHub, c'est le résultat de toutes les mises à jour des dépendances et la raison pour laquelle vous ne devriez pas mélanger une mise à jour magento avec une mise à jour d'autre chose.

Comme vous pouvez le voir, j'ai défini les fichiers pour NonComposerComponentRegistrationmoi-même, vous pouvez en avoir plusieurs. L'inconvénient de mon approche est que lorsque des changements dans le projet composer.jsonse produisent, vous devez les appliquer manuellement.

Comme vous l'avez demandé sur la mise à jour du NonComposerComponentRegistrationfichier, il y a encore "quelques" fichiers, qui sont copiés hors du fournisseur dans le répertoire cible, c'est pourquoi je l'ai nommé explicitement buildpour ne pas mélanger le sien avec les trucs générés / copiés.

J'espère que cela vous aidera, même s'il s'agit d'une configuration assez unique de M2.

Flyingmana
la source