Як оновити Magento2 за допомогою композитора


38

Я, здається, не можу оновити своє magento2 ce за допомогою композитора. Я не знаходжу жодних оновлень, єдине знайдене - "fabpot".

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

Або я щось пропускаю?

Заздалегідь дякую за будь-яку допомогу.


Редагувати:

Я дотримувався офіційної документації для встановлення Magento2 через композитор, як описано тут: 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>визначений 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 через пакетів, виникла проблема з 2.0.1. Будь ласка, додайте repo.magento.com до свого composer.json та пов’язану інформацію про авторство у файл auth.json.
Maddy

Оновлення magento 2 за допомогою композитора вимагало багато технічних знань про командний рядок. Якщо ви не дотепні до технологій, можливо, оновіть через адміністратора, magento commerce. Іноді композиторський метод провалився через відсутність залежності.
D. Joes

Відповіді:


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

Чудова відповідь. Дані кроки виконувати дуже просто.
Маніпракаш Chinnasamy

5
Немає необхідності спорожнювати реєстру продавця.
mniess

Коли команда оновлення запущена, вона показує помилку: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Команда "композитор" не визначена.
Lovely Setia

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?
Jeroen Vermeulen - MageHost

1
Для мене команда composer requireвсе зіпсувала. magentoкоманда також відсутня bin.
Дійн

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 без жодних проблем. Підтвердьте це !!
Калпеш

15

Під час оновлення через композитор ви можете вибрати версію, яку потрібно оновити за допомогою оновлення композитора. Наприклад:

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

Після закінчення композитора оновіть вашу базу даних, виконавши команду:

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

Привіт @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 можна двома основними методами, один - з панелі адміністратора, а другий - за допомогою композитора.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.