Jak zaktualizować Magento2 za pomocą kompozytora


38

Wydaje mi się, że nie jestem w stanie zaktualizować mojego magento2 ce przy użyciu kompozytora. Nie znajduję żadnych aktualizacji, jedyną, którą znalazłem, był „fabpot”.

Myślałem, że o to chodzi w konfiguracji kompozytora, więc dlaczego miałbym chcieć korzystać z backendu, jak wyjaśniono w dokumentacji: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

A może coś mi brakuje?

Z góry dziękuję za wszelką pomoc.


EDYTOWAĆ:

Postępowałem zgodnie z oficjalną dokumentacją, aby zainstalować Magento2 przez kompozytora, jak opisano tutaj: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Problem polega na tym, że plik composer.json jest pobierany za pomocą polecenia: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>zdefiniowanych magento w wymaganej sekcji pliku .json:

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

Jak widać, określono wersję 2.0.0.

Aby aktualizacja działała, musiałem ręcznie zmienić tę linię w pliku .json w następujący sposób:

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

Teraz uruchomione composer updatezaktualizowane wszystkie moduły od wersji 100.0.2 do 100.0.3.

Pamiętaj, że nadal powoduje to wyjątek błędu z powodu:

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

Teraz wydaje się, że brakuje kilku istotnych elementów, na przykład pliku bin / magento.

Czy ktoś ma jakieś pomysły, jak to zrobić poprawnie, aby faktycznie działało?


Jeśli zainstalowałeś 2.0 przez packagist, istnieje problem z 2.0.1. Dodaj repo.magento.com do pliku composer.json i powiązane informacje o autoryzacji w pliku auth.json.
Maddy,

Aktualizacja magento 2 za pomocą kompozytora wymagała dużej wiedzy technicznej na temat wiersza poleceń. Jeśli nie jesteś obeznany z technologią, może zaktualizuj za pośrednictwem administratora, Magento Commerce. Czasami metoda kompozytora zawiodła z powodu brakujących zależności.
D. Joes

Odpowiedzi:


58

Edytuj plik composer.json w folderze głównym i zmień wersję magento w wierszu 5:

"version": "2.0.1",

i pod „wymaganiem”

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

Teraz uruchom:

composer update

Następnie uruchomić:

php bin/magento setup:upgrade

I w końcu ponownie zainstaluj pliki statyczne, co dla mnie to polecenie:

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

To działało dla mnie.


Dziękuję bardzo Tecjam, pomogło mi to bardzo! Szukałem sposobu na aktualizację przez około tydzień. Pozdrowienia z Niemiec!
Java_Waldi

Świetna odpowiedź. Podane kroki są bardzo proste do wykonania.
Maniprakash Chinnasamy

5
Nie ma potrzeby opróżniania katalogu dostawcy.
mniess,

Po uruchomieniu polecenia aktualizacji wyświetla się błąd: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Polecenie „kompozytor” nie jest zdefiniowane.
Urocza Setia,

42

Aktualizacja / aktualizacja do Magento 2.0.5 (przez 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

Po aktualizacji sprawdź wersję Magento za pomocą następującego polecenia:

php bin/magento --version

Aktualizacja do Magento 2.3.x

Powyższe polecenia działają poprawnie podczas aktualizacji Magento do wersji 2.2.x.

Aby uaktualnić do Magento 2.3.x, musisz wykonać kilka dodatkowych kroków.

Oto przewodnik krok po kroku, jak zaktualizować Magento do 2.3.x:

Włącz tryb konserwacji

php bin/magento maintenance:enable

Określ pakiety Magento

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

Podaj dodatkowe pakiety

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

Usuń nieużywane pakiety

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

Zaktualizuj autoload

Otwórz composer.jsoni edytuj "autoload": "psr-4"sekcję, aby uwzględnić "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/"
    },
    ...
}

Zastosuj aktualizacje

composer update

Wyczyść pamięć podręczną Magento

php bin/magento cache:clean

Ręcznie wyczyść pamięć podręczną i wygenerowaną zawartość

Wyczyść podkatalogi vari generated:

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

Jeśli używasz pamięci podręcznej innej niż system plików, takiej jak Redis lub Memcached, musisz również ręcznie wyczyścić pamięć podręczną.

Zaktualizuj schemat i dane bazy danych

php bin/magento setup:upgrade

Wyłącz tryb konserwacji

php bin/magento maintenance:disable

Na koniec sprawdź swoją wersję Magento

php bin/magento --version

Czytaj więcej: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html


2
To działało dobrze :)
Arvind07

1
Nie musisz tego robić n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost

1
Dla mnie polecenie composer requireto wszystko pomieszało. magentobrakuje binrównież polecenia.
Dyin

1
Po wykonaniu kroków napisane jest: „Magento obsługuje wersje 7.0.2, 7.0.4 i 7.0.6 lub nowsze. Przeczytaj devdocs.magento.com/guides/v1.0/install-gde/… ” Mam PHP 7.1.11
Wasiq Shahrukh

3
Uznałem tę odpowiedź za bardziej przydatną niż inne. Użyłem go już 4 razy, bez żadnych problemów aktualizując różne pomniejsze wersje M2. Głosuj za tym !!
Kalpesh

15

Podczas aktualizacji przez kompozytora możesz wybrać wersję, którą chcesz zaktualizować za pomocą aktualizacji kompozytora. Na przykład:

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

To samo polecenie można uruchomić, jeśli używasz Enterprise. Na przykład:

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

Po uruchomieniu odpowiedniej komendy uruchom

composer update

Po zakończeniu pracy kompozytora zaktualizuj bazę danych, uruchamiając polecenie:

php bin/magento setup:upgrade 

Jak zawsze wykonaj kopię zapasową bazy danych i użyj narzędzia do kontroli wersji, takiego jak git, aby uchronić się przed planowanym uaktualnieniem.


Witaj, odsyłam twój komentarz i pojawia się błąd. widać poniżej błąd. Żądany pakiet magento / product-enterprise-edition 2.0.6 istnieje jako magento / product-enterprise-edition [2.0.2], ale są one odrzucane przez twoje ograniczenie. czy możesz pomóc w rozwiązaniu tego problemu?
Kartik Asodariya

7

Aby zaktualizować Magento 2.0.x przykładowymi danymi , wykonałem następujące kroki (działa również w celu aktualizacji do wersji 2.1 RC):

  1. Zastosuj to zatwierdzenie ręcznie (jest to poprawka błędu dla przykładowych danych wydanych w wersji 2.1)
  2. Zresetuj przykładowe moduły danych w Magento

    bin/magento sampledata:reset
  3. Zaktualizuj composer.json bez natychmiastowej aktualizacji zależności (spowodowałoby to konflikt, ponieważ stare wersje modułu magento są nadal zablokowane). W przypadku wersji 2.0.7:

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

    lub dla najnowszego kandydata do wydania 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [tylko w przypadku aktualizacji do> = 2.1] Usuń przykładowe moduły danych z 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. Uruchom aktualną aktualizację kompozytora:

    composer update
  6. [tylko w przypadku aktualizacji do> = 2.1] Zainstaluj ponownie przykładowe dane (może być konieczne ponowne zastosowanie poprawki z (2)):

    bin/magento sampledata:deploy

kiedy uruchamiam polecenie, composer updatepyta o nazwę użytkownika i hasło, jaka jest ta nazwa użytkownika i hasło, jeśli możesz mnie poprowadzić
amit_game

Cześć @amit_game: Z jakiegoś powodu repozytorium repo.magento.com wymaga uwierzytelnienia. Możesz utworzyć klucze autoryzacyjne na marketplace.magento.com, korzystając z następującego przewodnika: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam

0

Krok po kroku uruchom następujące polecenie

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

Po aktualizacji sprawdź wersję Magento za pomocą następującego polecenia:

php bin/magento --version

0

Może czegoś brakuje. Najpierw połącz swój sklep z SSH. Teraz przejdź do katalogu głównego swojego sklepu.

Uruchom wszystkie polecenia jeden po drugim:

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

Już odpowiedziałem na moje pytanie, dzięki. Jak widać, był to problem z pierwszą wersją magento 2.0 - dokumentacja i problemy zostały już naprawione. Na początku nigdy nie zrobiłbym aktualizacji kompozytora bezpośrednio na serwerze, nie wspominając o sklepie na żywo.
tecjam

0

Magento 2 można uaktualnić dwiema podstawowymi metodami, jedną z panelu administracyjnego, a drugą za pomocą kompozytora.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.