Magento 2: Aktualizowanie instalacji „Meta Package”

11

Jakiś czas temu zainstalowałem Magento 2 za pośrednictwem meta-pakietu kompozytora . Jest to również znane jako instalacja integratora.

Wygląda na to, że zainstalował Magento CE 2.0.1. Czy istnieje sposób na uaktualnienie tej wersji do najnowszej wersji Magento CE 2.0.3? Zdaję sobie sprawę, że mogę zaktualizować composer.jsontak, aby tutaj 2.0.1

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

staje się

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

To jednak pomijałoby pliki takie jak

app/etc/NonComposerComponentRegistration.php 

Jak również wszelkie aktualizacje samego pliku composer.json.

Czy można zaktualizować wersję Magento 2 zainstalowaną z pakietem meta? A może nie jest to cel meta pakietów?

Alan Storm
źródło
alankent.me/2016/03/31/… może zawierać przydatne informacje. Wierzę, że NonComposerComponentRegistration.php zostanie zaktualizowany podczas aktualizacji z powodu wtyczki instalatora Magento dla Composer. Jeśli pojawi się nowy moduł „magento2-base”, zastąpi on pliki wcześniej zainstalowane przez moduł podstawowy. Artykuł zaleca „użyj git”, aby zachować lokalne zmiany. Możesz skorygować domyślny plik github.com/magento/magento2/blob/develop/app/etc/… , który przenosi pakiet do pakietu „magento2-base”.
Alan Kent
„Wierzę, że plik NonComposerComponentRegistration.php zostanie zaktualizowany”, co jest negatywne - a przynajmniej w moim konkretnym przypadku przejście z wersji 2.0.1 do 2.0.3 aktualizacja kompozytora nie zainstalowała pliku NonComposerComponentRegistration.php i nie zaktualizowała aplikacji /etc/di.xml.
Alan Storm
Możesz zaktualizować metapakiet za pomocą Aktualizacji systemu lub z wiersza poleceń. Zastrzeżenie w tym momencie zastępujemy 2.0.3 na 2.0.4 i dostęp do repo.magento.comjest zablokowany. Poczekaj na ogłoszenie. Krok 1, uruchom composer require <string> <version> --noupdate(sprawdź składnię). Krok 2, uruchom composer update. Krok 3, uruchombin/magento setup:upgrade
Steve Johnson
@ SteveJohnson W jaki sposób ta aktualizacja plików poza vendor?
Alan Storm

Odpowiedzi:

3

Właśnie dostosowałem swój composer.jsonplik do używania 2.0.4 zamiast 2.0.2 (ręcznie), a następnie uruchomiłem composer updatei php bin/magento setup:upgrade. Pracował tutaj bez zarzutu.

Wierzę, że pakiet instalacyjny Magento Composer obsługuje instalację plików w app/folderach itp., Co także aktualizuje rzeczy podczas aktualizacji. Ale ta ostatnia część jest tylko założeniem, ponieważ nie musiałem jej debugować.

stefandoorn
źródło
@alanstorm, Czy którakolwiek z tych odpowiedzi pomaga?
Steve Johnson
@stefandoorn czy możesz otworzyć plik app/etc/NonComposerComponentRegistration.phpi potwierdzić rok praw autorskich
Kristof at Fooman
/ ** * Copyright © 2016 Magento. Wszelkie prawa zastrzeżone. * Szczegółowe informacje na temat licencji znajdują się na COPYING.txt. * /
stefandoorn
@KristofatFooman Patrz wyżej.
stefandoorn
2

Obecnie nie mogę go przetestować, ponieważ repozytorium kompozytora Connect jest uszkodzone, ale mam nadzieję, że nadal będzie przydatne.

To composer.jsonmój własny projekt https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Ostatnio zmieniłem na, "magento/product-community-edition": "^2.0"aby móc aktualizować za pomocą prostego composer update --with-dependencies magento/product-community-editionpolecenia. Zawsze wyraźnie nazywam to, co należy zaktualizować, aby nie pomieszać go z innymi pakietami, których potrzebuję oprócz magento, ale dlatego potrzebuję --with-dependenciesargumentu.

Bardzo ważną częścią tego przepływu pracy jest zatwierdzanie composer.lockpliku po każdej (pomyślnie przetestowanej) aktualizacji. Jak widzisz, różnica pliku blokady jest zbyt duża dla GitHub, jest to wynik wszystkich aktualizacji zależności i powód, dla którego nie powinieneś mieszać aktualizacji Magento z aktualizacją czegoś innego.

Jak widać, zdefiniowałem pliki dla NonComposerComponentRegistrationsiebie, możesz mieć ich wiele. Minusem mojego podejścia jest to, że kiedy zachodzą zmiany w projekcie composer.json, musisz je zastosować ręcznie.

Gdy zapytałeś o aktualizację NonComposerComponentRegistrationpliku, nadal istnieje „kilka” plików, które są kopiowane z dostawcy do katalogu docelowego, dlatego nazwałem go jawnie, buildaby nie mieszać własnych z wygenerowanymi / skopiowanymi plikami.

Mam nadzieję, że to pomaga, nawet jeśli jest to dość wyjątkowa konfiguracja M2.

Flyingmana
źródło