So aktualisieren Sie Magento2 mit Composer


38

Ich kann mein magento2 ce scheinbar nicht mit composer aktualisieren. Ich finde keine Updates, der einzige gefundene war 'fabpot'.

Ich dachte, das wäre der springende Punkt bei einem Composer-Setup. Warum sollte ich das Backend verwenden, wie in der Dokumentation erläutert: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

Oder vermisse ich etwas?

Vielen Dank im Voraus für jede Hilfe.


BEARBEITEN:

Ich habe die offizielle Dokumentation zur Installation von Magento2 über Composer befolgt, wie hier beschrieben: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Das Problem ist, dass die composer.json-Datei, die mit dem Befehl: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>defined magento abgerufen wird, im erforderlichen Abschnitt der .json-Datei enthalten ist:

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

Wie Sie sehen, ist Version 2.0.0 angegeben.

Damit das Update funktioniert, musste ich diese Zeile in der .json-Datei wie folgt manuell ändern:

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

composer updateLäuft jetzt aktualisiert alle Module von Version 100.0.2 auf 100.0.3.

Bitte beachten Sie, dass dies aus folgenden Gründen immer noch eine Fehlerausnahme auslöst:

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

Jetzt scheinen ein paar wesentliche Dinge zu fehlen, zum Beispiel die bin / magento-Datei.

Hat jemand eine Idee, wie es richtig gemacht wird, damit es tatsächlich funktioniert?


Wenn Sie 2.0 über packagist installiert haben, liegt ein Problem mit 2.0.1 vor. Bitte fügen Sie repo.magento.com zu Ihrer composer.json hinzu und fügen Sie die entsprechenden auth-Informationen in die auth.json-Datei ein.
Maddy

Das Upgrade von Magento 2 mit Composer erforderte viele technische Kenntnisse über die Befehlszeile. Wenn Sie nicht technisch versiert sind, können Sie ein Upgrade über Admin, Magento Commerce durchführen. Manchmal schlug die Composer-Methode aufgrund fehlender Abhängigkeiten fehl.
D. Joes

Antworten:


58

Bearbeiten Sie die Datei composer.json im Stammverzeichnis und ändern Sie die Version von magento in Zeile 5:

"version": "2.0.1",

und unter "erfordern"

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

Führen Sie nun Folgendes aus:

composer update

Dann renne:

php bin/magento setup:upgrade

Und schließlich die statischen Dateien erneut bereitstellen, was für mich der folgende Befehl ist:

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

Das hat bei mir geklappt.


Vielen Dank Tecjam, das hat mir sehr geholfen! Ich suchte nach einem Update für ungefähr eine Woche. Grüße aus Deutschland!
Java_Waldi

Gute Antwort. Die angegebenen Schritte sind sehr einfach zu befolgen.
Maniprakash Chinnasamy

5
Es ist nicht erforderlich, das Herstellerverzeichnis zu leeren.
mniess

Wenn der Befehl update ausgeführt wird, wird der folgende Fehler angezeigt: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Der Befehl "composer" ist nicht definiert.
Lovely Setia

42

Update / Upgrade auf 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

Überprüfen Sie nach dem Upgrade Ihre Magento-Version mit dem folgenden Befehl:

php bin/magento --version

Upgrade auf Magento 2.3.x

Die obigen Befehle funktionieren einwandfrei, wenn Magento auf 2.2.x aktualisiert wird.

Um auf Magento 2.3.x zu aktualisieren, müssen Sie einige weitere Schritte ausführen.

Hier ist die Schritt-für-Schritt-Anleitung zum Upgrade von Magento auf 2.3.x:

Wartungsmodus aktivieren

php bin/magento maintenance:enable

Geben Sie Magento-Pakete an

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

Geben Sie zusätzliche Pakete an

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

Nicht verwendete Pakete entfernen

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

Autoload aktualisieren

Öffnen composer.jsonund bearbeiten Sie den "autoload": "psr-4"Abschnitt, um Folgendes einzuschließen "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/"
    },
    ...
}

Updates anwenden

composer update

Bereinigen Sie den Magento-Cache

php bin/magento cache:clean

Manuelles Löschen von Caches und generierten Inhalten

Löschen Sie die Unterverzeichnisse varund generated:

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

Wenn Sie einen anderen Cache-Speicher als das Dateisystem verwenden, z. B. Redis oder Memcached, müssen Sie den Cache auch dort manuell löschen.

Aktualisieren Sie das Datenbankschema und die Daten

php bin/magento setup:upgrade

Wartungsmodus deaktivieren

php bin/magento maintenance:disable

Überprüfen Sie abschließend Ihre Magento-Version

php bin/magento --version

Lesen Sie mehr: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html


2
Dies hat gut funktioniert :)
Arvind07

1
Müssen Sie nicht eine machen n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost

1
Für mich hat der Befehl composer requirealles durcheinander gebracht. magentoBefehl fehlt binebenfalls.
Dyin

1
Nachdem Sie Ihre Schritte ausgeführt haben, heißt es "Magento unterstützt 7.0.2, 7.0.4 und 7.0.6 oder höher. Bitte lesen Sie devdocs.magento.com/guides/v1.0/install-gde/… ". Ich habe PHP 7.1.11
Wasiq Shahrukh

3
Ich fand diese Antwort nützlicher als andere. Es wurde bereits 4 Mal verwendet, um verschiedene kleinere M2-Versionen ohne Probleme zu aktualisieren. Upvote das !!
Kalpesh

15

Beim Upgrade über Composer können Sie die Version auswählen, für die Sie ein Upgrade über ein Composer-Upgrade durchführen möchten. Beispielsweise:

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

Der gleiche Befehl kann bei Verwendung von Enterprise ausgeführt werden. Beispielsweise:

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

Führen Sie den entsprechenden Befehl aus, nachdem Sie ihn ausgeführt haben

composer update

Wenn der Composer fertig ist, aktualisieren Sie Ihre Datenbank, indem Sie den folgenden Befehl ausführen:

php bin/magento setup:upgrade 

Machen Sie wie immer ein Backup Ihrer Datenbank und verwenden Sie ein Versionierungstool wie git, um sich vor dem nicht planmäßigen Upgrade zu schützen.


Hallo, ich beziehe mich auf deinen Kommentar und bekomme Fehler. Sie können unten Fehler sehen. Das angeforderte Paket magento / product-enterprise-edition 2.0.6 existiert als magento / product-enterprise-edition [2.0.2], wird jedoch von Ihrer Einschränkung abgelehnt. Können Sie bitte helfen, dieses Problem zu lösen?
Kartik Asodariya

7

Um Magento 2.0.x mit Beispieldaten zu aktualisieren , habe ich die folgenden Schritte ausgeführt (funktioniert auch beim Update auf 2.1 RC):

  1. Wenden Sie dieses Commit manuell an (dies ist ein Bugfix für die mit 2.1 veröffentlichten Beispieldaten).
  2. Setzen Sie die Beispieldatenmodule in Magento zurück

    bin/magento sampledata:reset
  3. Aktualisieren Sie composer.json, ohne Abhängigkeiten sofort zu aktualisieren (dies würde zu einem Konflikt führen, da die alten Versionen des Magento-Moduls noch gesperrt sind). Für 2.0.7:

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

    oder für den neuesten 2.1-Release-Kandidaten

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [nur bei Aktualisierung auf> = 2.1] Entfernen Sie die Beispieldatenmodule aus 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. Führen Sie das eigentliche Composer-Update aus:

    composer update
  6. [nur bei Aktualisierung auf> = 2.1] Installieren Sie die Beispieldaten neu (möglicherweise müssen Sie den Patch von (2) erneut anwenden):

    bin/magento sampledata:deploy

Wenn ich einen Befehl composer update
ausführe, frage

Hi @amit_game: Aus irgendeinem Grund muss das Repository von repo.magento.com authentifiziert werden. Sie können Ihre Auth-Keys auf marketplace.magento.com mithilfe der folgenden Anleitung erstellen
tecjam

0

Schritt für Schritt führen Sie den folgenden Befehl aus

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

Überprüfen Sie nach dem Upgrade Ihre Magento-Version mit dem folgenden Befehl:

php bin/magento --version

0

Vielleicht fehlt dir etwas. Verbinden Sie zuerst Ihren Shop mit SSH. Wechseln Sie nun in das Stammverzeichnis Ihres Shops.

Führen Sie alle Befehle einzeln aus:

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

Ich habe meine Frage bereits beantwortet, danke. Wie Sie sehen, handelte es sich um ein Problem mit der ersten Veröffentlichung von Magento 2.0 - die Dokumentation und die Probleme wurden seitdem behoben. Außerdem würde ich niemals ein Composer-Update direkt auf dem Server durchführen, egal im Live-Shop.
Tecjam

0

Man kann Magento 2 mit den beiden grundlegenden Methoden aktualisieren, wobei die eine vom Admin-Panel stammt und die andere Composer verwendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.