Magento 2: Aktualisieren einer „Meta Package“ -Installation

11

Vor einiger Zeit habe ich Magento 2 über das Composer- Metapaket installiert . Dies wird auch als Integrator-Installation bezeichnet.

Dies scheint Magento CE 2.0.1 installiert zu haben. Gibt es eine Möglichkeit, diese Version auf das neueste Magento CE 2.0.3 zu aktualisieren? Mir ist klar, dass ich das composer.jsonso aktualisieren kann, dass das 2.0.1 hier ist

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

wird

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

Allerdings würde das Dateien wie fehlen

app/etc/NonComposerComponentRegistration.php 

Sowie alle Aktualisierungen der Datei composer.json.

Ist es möglich, eine mit dem Metapaket installierte Version von Magento 2 zu aktualisieren? Oder ist das nicht die Absicht der Metapakete?

Alan Storm
quelle
alankent.me/2016/03/31/… enthält möglicherweise einige nützliche Informationen. Ich glaube , NonComposerComponentRegistration.php wird aktualisiert, wenn Sie aufgrund der magento das Upgrade zu tun Installer Plugin für Composer. Wenn es ein neues 'magento2-base'-Modul gibt, ersetzt es die zuvor vom Basismodul installierten Dateien. Artikel empfiehlt "git verwenden", um lokale Änderungen zu bewahren. Sie können die Standarddatei github.com/magento/magento2/blob/develop/app/etc/… in Ordnung bringen, die das Paket in das "magento2-base" -Paket bringt.
Alan Kent
"Ich glaube, NonComposerComponentRegistration.php wird aktualisiert" ist negativ - oder zumindest in meinem speziellen Fall von 2.0.1 auf 2.0.3 hat das Composer-Upgrade NonComposerComponentRegistration.php nicht installiert und die App nicht aktualisiert /etc/di.xml.
Alan Storm
Sie können das Metapaket mit System Upgrade oder über die Befehlszeile aktualisieren. Vorbehaltlich in diesem Moment ersetzen wir 2.0.3 durch 2.0.4 und der Zugriff auf repo.magento.comist gesperrt. Warten Sie auf eine Ankündigung. Schritt 1 ausführen composer require <string> <version> --noupdate(Syntax überprüfen). Schritt 2 ausführen composer update. Schritt 3, laufenbin/magento setup:upgrade
Steve Johnson
@SteveJohnson Wie werden diese Dateien außerhalb von aktualisiert vendor?
Alan Storm

Antworten:

3

Ich habe gerade meine composer.jsonDatei so angepasst , dass sie 2.0.4 anstelle von 2.0.2 (von Hand) verwendet, und danach lief composer updateund php bin/magento setup:upgrade. Arbeitete hier einwandfrei.

Ich glaube, das Magento Composer-Installationspaket übernimmt die Installation von Dateien in den app/Ordnern usw., wodurch auch Aktualisierungen aktualisiert werden. Aber dieser letzte Teil ist nur eine Annahme, da ich ihn nicht debuggen musste.

stefandoorn
quelle
@alanstorm, Hilft eine dieser Antworten?
Steve Johnson
@stefandoorn können Sie bitte die Datei öffnen app/etc/NonComposerComponentRegistration.phpund das Jahr des Urheberrechts bestätigen
Kristof bei Fooman
/ ** * Copyright © 2016 Magento. Alle Rechte vorbehalten. * Lizenzdetails finden Sie unter COPYING.txt. * /
stefandoorn
@KristofatFooman Siehe oben.
Stefandoorn
2

Ich kann es derzeit nicht testen, da das Composer-Repository von connect defekt ist, aber ich hoffe, es ist immer noch nützlich.

Das ist composer.jsonmein eigenes Projekt https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Ich habe kürzlich geändert, "magento/product-community-edition": "^2.0"um tatsächlich mit einem einfachen composer update --with-dependencies magento/product-community-editionBefehl aktualisieren zu können . Ich nenne immer explizit, was aktualisiert werden soll, um es nicht mit den anderen Paketen zu verwechseln, die ich neben Magento benötige, aber deshalb brauche ich das --with-dependenciesArgument.

Ein sehr wichtiger Teil dieses Workflows besteht darin, die composer.lockDatei nach jedem (erfolgreich getesteten) Update festzuschreiben. Wie Sie sehen, ist der Unterschied in der Sperrdatei für GitHub zu groß. Dies ist ein Ergebnis aller Abhängigkeitsaktualisierungen und der Grund, warum Sie ein Magento-Update nicht mit einem Update von etwas anderem verwechseln sollten.

Wie Sie sehen können, habe ich die Dateien für NonComposerComponentRegistrationmich selbst definiert. Sie können mehrere davon haben. Der Nachteil meines Ansatzes ist, dass Sie Änderungen im Projekt composer.jsonmanuell anwenden müssen.

Als Sie nach der Aktualisierung der NonComposerComponentRegistrationDatei gefragt haben , gibt es immer noch "einige" Dateien, die vom Hersteller in das Zielverzeichnis kopiert werden. Deshalb habe ich sie ausdrücklich so benannt, dass sie buildnicht mit generierten / kopierten Dateien verwechselt werden.

Hoffe das hilft, auch wenn dies ein ziemlich einzigartiges Setup von M2 ist.

Flyingmana
quelle