Comment mettre à jour Magento2 en utilisant composer

38

Je n'arrive pas à mettre à jour mon magento2 ce en utilisant composer. Je ne trouve pas de mises à jour, le seul qu'il a trouvé était "fabpot".

Je pensais que c'était tout l'intérêt d'une configuration de composition, alors pourquoi voudrais-je utiliser le backend comme expliqué dans la documentation: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

Ou est-ce que je manque quelque chose?

Merci d'avance pour votre aide.


MODIFIER:

J'ai suivi la documentation officielle pour installer Magento2 via Composer, comme décrit ici: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Le problème est que le fichier composer.json qui est extrait à l'aide de la commande: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>définie par magento dans la section requise du fichier .json:

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

Comme vous pouvez le constater, la version 2.0.0 est spécifiée.

Pour que la mise à jour fonctionne, je devais modifier manuellement cette ligne dans le fichier .json comme suit:

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

Maintenant en cours d'exécution composer updatemis à jour tous les modules de la version 100.0.2 à 100.0.3.

Veuillez noter que cela génère toujours une exception d'erreur pour les raisons suivantes:

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

Maintenant, il semble que plusieurs éléments essentiels manquent, par exemple le fichier bin / magento.

Quelqu'un a des idées sur la façon dont il est fait correctement afin que cela fonctionne réellement?

tecjam
la source
Si vous avez installé 2.0 via packagist, il existe un problème avec 2.0.1. Veuillez ajouter repo.magento.com à votre composer.json et les informations d’authentification correspondantes dans le fichier auth.json.
Maddy
Mettre à niveau magento 2 à l’aide de composer nécessitait de nombreuses connaissances techniques sur la ligne de commande. Si vous n'êtes pas féru de technologie, peut-être mettre à niveau via admin, magento commerce. Parfois, la méthode composer échouait à cause de dépendances manquantes.
D. Joes
C'est vrai, essayez ceci magecomp.com/blog/upgrade-magento-2-x-to-latest-version
Gaurav Jain

Réponses:

58

Editez le fichier composer.json sur le dossier racine et changez la version de magento à la ligne 5:

"version": "2.0.1",

et sous "obliger"

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

Maintenant, lancez:

composer update

Puis lancez:

php bin/magento setup:upgrade

Et finalement, redéployez les fichiers statiques, qui pour moi sont cette commande:

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

Cela a fonctionné pour moi.

tecjam
la source
Merci beaucoup tecjam, cela m'a beaucoup aidé! Je cherchais un moyen de mettre à jour pendant environ une semaine. Salutations d'Allemagne!
Java_Waldi
Très bonne réponse. Les étapes données sont très simples à suivre.
Maniprakash Chinnasamy
5
Il n'est pas nécessaire de vider le répertoire du fournisseur.
mniess
Lorsque la commande de mise à jour est exécutée, l'erreur suivante s'affiche: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] La commande "composer" n'est pas définie.
Belle Setia
42

Mise à jour / mise à niveau vers Magento 2.0.5 (via 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

Après la mise à niveau, vérifiez votre version de Magento avec la commande suivante:

php bin/magento --version

Mise à niveau vers Magento 2.3.x

Les commandes ci-dessus fonctionnent correctement lors de la mise à niveau de Magento vers la version 2.2.x.

Pour passer à Magento 2.3.x, vous devez suivre quelques étapes supplémentaires.

Voici le guide étape par étape pour mettre à niveau Magento vers la version 2.3.x:

Activer le mode maintenance

php bin/magento maintenance:enable

Spécifiez les paquets Magento

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

Spécifiez des packages supplémentaires

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

Supprimer les paquets inutilisés

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

Mettre à jour le chargement automatique

Ouvrez composer.jsonet éditez la "autoload": "psr-4"section pour inclure "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/"
    },
    ...
}

Appliquer les mises à jour

composer update

Nettoyer le cache de Magento

php bin/magento cache:clean

Effacer manuellement les caches et le contenu généré

Effacer les sous var- generatedrépertoires et :

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

Si vous utilisez un stockage en cache autre que le système de fichiers, tel que Redis ou Memcached, vous devez également vider le cache manuellement.

Mettre à jour le schéma de base de données et les données

php bin/magento setup:upgrade

Désactiver le mode maintenance

php bin/magento maintenance:disable

Enfin, vérifiez votre version de Magento

php bin/magento --version

En savoir plus: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html

Mukesh Chapagain
la source
2
Cela a bien fonctionné :)
Arvind07
1
Vous n'avez pas besoin de faire un n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost
1
Pour moi, la commande a tout composer requiregâché. magentoLa commande est également absente bin.
Dyin
1
Après avoir suivi vos étapes, il indique "Magento prend en charge les versions 7.0.2, 7.0.4 et 7.0.6 ou ultérieure. Veuillez lire devdocs.magento.com/guides/v1.0/install-gde/… " J'ai PHP 7.1.11
Wasiq Shahrukh
3
J'ai trouvé cette réponse plus utile que d'autres. Déjà utilisé 4 fois en améliorant diverses versions mineures de M2 ​​sans aucun problème. Upvote cela !!
Kalpesh
15

Lors de la mise à niveau via composeur, vous pouvez choisir la version à mettre à niveau via une mise à niveau du composeur. Par exemple:

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

La même commande peut être exécutée si vous utilisez Enterprise. Par exemple:

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

Après avoir exécuté la commande appropriée, exécutez

composer update

Lorsque compositeur a terminé, mettez à niveau votre base de données en exécutant la commande suivante:

php bin/magento setup:upgrade 

Comme toujours, faites une sauvegarde de votre base de données et utilisez un outil de gestion de version tel que git pour vous protéger contre la mise à niveau qui ne se prépare pas.

Richard Cripps
la source
Bonjour, je vous renvoie votre commentaire et obtenir une erreur. vous pouvez voir l'erreur ci-dessous. Le paquet demandé magento / product-enterprise-edition 2.0.6 existe sous la forme magento / product-enterprise-edition [2.0.2], mais il est rejeté par votre contrainte. pouvez-vous s'il vous plaît aider à résoudre ce problème.
Kartik Asodariya
7

Pour mettre à jour Magento 2.0.x avec des exemples de données , j'ai suivi ces étapes (fonctionne également pour mettre à jour à 2.1 RC):

  1. Appliquez cette validation manuellement (c'est un correctif pour les exemples de données publiés avec 2.1)
  2. Réinitialiser les exemples de modules de données dans Magento

    bin/magento sampledata:reset
  3. Mettez à jour composer.json sans mettre à jour immédiatement les dépendances (cela entraînerait un conflit, car les anciennes versions du module magento sont toujours verrouillées). Pour 2.0.7:

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

    ou pour la dernière version candidate 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [uniquement si vous mettez à jour vers> = 2.1] Supprimez les exemples de modules de données 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. Exécutez la mise à jour actuelle du compositeur:

    composer update
  6. [uniquement si vous mettez à jour vers> = 2.1] Réinstallez les exemples de données (vous devrez peut-être appliquer le correctif à partir de (2) à nouveau):

    bin/magento sampledata:deploy
Fabian Schmengler
la source
quand je lance la commande, composer updateelle demande son nom d'utilisateur et son mot de passe, quels sont ces nom d'utilisateur et mot de passe, si vous pouvez me guider
amit_game
Bonjour @ Amit_game: Pour une raison quelconque, le référentiel repo.magento.com requiert une authentification. Vous pouvez créer vos clés d'authentification sur marketplace.magento.com à l'aide du guide suivant: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam
0

Pas à pas, exécutez la commande suivante

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

Après la mise à niveau, vérifiez votre version de Magento avec la commande suivante:

php bin/magento --version
Ravindrasinh Zala
la source
0

Peut-être vous manque quelque chose. Commencez par connecter votre magasin à SSH. Maintenant, allez au répertoire racine de votre magasin.

Exécutez toutes les commandes une à une:

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
la source
J'ai déjà répondu à ma propre question, merci. Comme vous pouvez le constater, il s'agissait d'un problème avec la première version de magento 2.0: la documentation et les problèmes ont été corrigés depuis. En plus, je ne ferais jamais une mise à jour du compositeur directement sur le serveur, sans parler du live shop.
tecjam
0

On peut mettre à niveau magento 2 en utilisant les deux méthodes de base, l’une à partir du panneau d’administration et l’autre à l’aide de composer.

rohimic
la source