Как обновить Magento2 с помощью композитора


38

Я не могу обновить мой magento2 ce с помощью composer. Я не нахожу никаких обновлений, единственное, что он нашел, был 'fabpot'.

Я думал, что в этом весь смысл настройки композитора, поэтому зачем мне использовать бэкэнд, как описано в документации: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

Или я что-то упустил?

Заранее благодарю за любую помощь.


РЕДАКТИРОВАТЬ:

Я следовал официальной документации для установки Magento2 через composer, как описано здесь: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Проблема в том, что файл composer.json, который извлекается с помощью команды: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>define magento в необходимом разделе .json:

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

Как видите, указана версия 2.0.0.

Чтобы обновление работало, мне пришлось вручную изменить эту строку в файле .json следующим образом:

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

Сейчас запущены composer updateобновленные все модули с версии 100.0.2 до 100.0.3.

Обратите внимание, что это все еще выдает исключение ошибки из-за следующего:

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

Теперь кажется, что отсутствуют некоторые важные элементы, например, файл bin / magento.

Кто-нибудь получил какие-либо идеи, как это сделано правильно, чтобы это на самом деле работает?


Если вы установили 2.0 через packagist, существует проблема с 2.0.1. Пожалуйста, добавьте repo.magento.com в ваш composer.json и соответствующую информацию об аутентификации в файле auth.json.
Мэдди

Обновление magento 2 с использованием composer потребовало много технических знаний о командной строке. Если вы не разбираетесь в технологиях, возможно, обновитесь через admin, magento commerce. Иногда метод composer не работает из-за отсутствия зависимостей.
Д. Джос

Ответы:


58

Отредактируйте файл composer.json в корневой папке и измените версию magento в строке 5:

"version": "2.0.1",

и под "требуют"

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

Теперь запустите:

composer update

Затем запустите:

php bin/magento setup:upgrade

И, наконец, повторно разверните статические файлы, для меня это команда:

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

Это сработало для меня.


Спасибо большое tecjam, это мне очень помогло! Я искал способ обновления в течение недели. Привет из Германии!
Java_Waldi

Отличный ответ. Данные шаги очень просты для подражания.
Манипракаш Чиннасамы

5
Нет необходимости очищать каталог поставщика.
mniess

При запуске команды обновления отображается сообщение об ошибке: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Команда «composer» не определена.
Прекрасная Сетия

42

Обновление / Обновление до Magento 2.0.5 (через 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

После обновления проверьте версию Magento с помощью следующей команды:

php bin/magento --version

Обновление до Magento 2.3.x

Приведенные выше команды работают нормально при обновлении Magento до 2.2.x.

Чтобы перейти на Magento 2.3.x, вам нужно выполнить еще несколько шагов.

Вот пошаговое руководство по обновлению Magento до 2.3.x:

Включить режим обслуживания

php bin/magento maintenance:enable

Укажите пакеты Magento

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

Укажите дополнительные пакеты

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

Удалить неиспользованные пакеты

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

Обновить автозагрузку

Откройте composer.jsonи измените "autoload": "psr-4"раздел, включив в него "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/"
    },
    ...
}

Применить обновления

composer update

Очистить кеш Magento

php bin/magento cache:clean

Очистить кеши и сгенерированный контент вручную

Очистите varи generatedподкаталоги:

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

Если вы используете кеш-память, отличную от файловой системы, например, Redis или Memcached, вы также должны вручную очистить кеш там.

Обновите схему базы данных и данные

php bin/magento setup:upgrade

Отключить режим обслуживания

php bin/magento maintenance:disable

Наконец, проверьте свою версию Magento

php bin/magento --version

Подробнее: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html.


2
Это работало нормально :)
Arvind07

1
Вам не нужно делать n98-magerun2 setup:static-content:deploy en_US?
Йерун Вермейлен - MageHost

1
Для меня команда composer requireвсе испортила. magentoкоманда также отсутствует bin.
Dyin

1
После выполнения ваших шагов он говорит: «Magento поддерживает 7.0.2, 7.0.4 и 7.0.6 или более позднюю версию. Пожалуйста, прочтите devdocs.magento.com/guides/v1.0/install-gde/… » У меня PHP 7.1.11
Васик Шахрух

3
Я нашел этот ответ более полезным, чем другие. Уже использовал его 4 раза, обновляя различные минорные версии M2 без каких-либо проблем. Упражнение это !!
Kalpesh

15

При обновлении через composer вы можете выбрать версию, которую вы хотите обновить через обновление composer. Например:

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

Эта же команда может быть запущена при использовании Enterprise. Например:

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

Запустив соответствующую команду, запустите

composer update

Когда composer закончил, обновите базу данных, выполнив команду:

php bin/magento setup:upgrade 

Как всегда, сделайте резервную копию своей базы данных и используйте инструмент управления версиями, такой как git, чтобы защитить себя от обновления, которое не планируется планировать.


Здравствуйте, я отсылаю ваш комментарий и получаю ошибку. Вы можете увидеть ниже ошибку. Запрашиваемый пакет magento / product-enterprise-edition 2.0.6 существует как magento / product-enterprise-edition [2.0.2], но он отклонен вашим ограничением. Можете ли вы помочь решить эту проблему.
Картик Асодария

7

Чтобы обновить Magento 2.0.x с примерами данных , я выполнил следующие действия (также работает для обновления до 2.1 RC):

  1. Примените этот коммит вручную (это исправление для примера данных, выпущенного с 2.1)
  2. Сброс примеров модулей данных в Magento

    bin/magento sampledata:reset
  3. Обновите composer.json без немедленного обновления зависимостей (это может привести к конфликту, поскольку старые версии модуля magento все еще заблокированы). Для 2.0.7:

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

    или для последней версии кандидата 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [только если вы обновитесь до> = 2.1] Удалите образцы модулей данных из 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. Запустите актуальное обновление композитора:

    composer update
  6. [только если вы обновляете до> = 2.1] Переустановите пример данных (вам может понадобиться применить исправление из (2) снова):

    bin/magento sampledata:deploy

когда я запускаю команду, composer updateона спрашивает имя пользователя и пароль, что это за имя пользователя и пароль, если вы можете мне
помочь

Привет @amit_game: По какой-то причине репозиторий repo.magento.com требует аутентификации. Вы можете создать свои ключи авторизации на marketplace.magento.com, используя следующее руководство: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam

0

Шаг за шагом выполните следующую команду

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

После обновления проверьте версию Magento с помощью следующей команды:

php bin/magento --version

0

Может быть, вы что-то упустили. Сначала подключите свой магазин с помощью SSH. Теперь перейдите в корневой каталог вашего магазина.

Запустите все команды одну за другой:

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

Я уже ответил на свой вопрос, спасибо. Как вы можете видеть, это была проблема с первым выпуском magento 2.0 - с тех пор документация и проблемы были исправлены. В довершение всего, я бы никогда не сделал обновление композитора непосредственно на сервере, не говоря уже о реальном магазине.
tecjam

0

Можно обновить magento 2, используя два основных метода: один из панели администратора, а другой использует composer.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.