Magento 2: обновление «метапакета»

11

Некоторое время назад я установил Magento 2 через метапакет composer . Это также называется установкой интегратора.

Похоже, что установили Magento CE 2.0.1. Есть ли способ обновить эту версию до последней версии Magento CE 2.0.3? Я понимаю, что я мог бы обновить, composer.jsonчтобы 2.0.1 здесь

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

становится

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

Тем не менее, это будет пропустить файлы, такие как

app/etc/NonComposerComponentRegistration.php 

Как и любые обновления самого файла composer.json.

Можно ли обновить версию Magento 2, установленную с метапакетом? Или это не цель метапакетов?

Алан Сторм
источник
alankent.me/2016/03/31/… может иметь некоторую полезную информацию. Я полагаю, что NonComposerComponentRegistration.php будет обновляться при обновлении из-за плагина установщика magento для Composer. Если есть новый модуль 'magento2-base', он заменит файлы, ранее установленные базовым модулем. Статья рекомендует «использовать git» для сохранения локальных изменений. Вы можете настроить файл по умолчанию github.com/magento/magento2/blob/develop/app/etc/… , который получает пакет в пакет "magento2-base".
Алан Кент
«Я полагаю, что NonComposerComponentRegistration.php будет обновлен», что отрицательно - или, по крайней мере, в моем конкретном случае при переходе с 2.0.1 на 2.0.3 обновление композитора не установило NonComposerComponentRegistration.php и не обновило приложение /etc/di.xml.
Алан Шторм
Вы можете обновить метапакет с помощью System Upgrade или из командной строки. В настоящее время мы заменяем 2.0.3 на 2.0.4, и доступ к нему repo.magento.comзаблокирован. Ждите объявления. Шаг 1, запустите composer require <string> <version> --noupdate(проверьте синтаксис). Шаг 2, беги composer update. Шаг 3, бегиbin/magento setup:upgrade
Стив Джонсон
@ SteveJohnson Как это будет обновлять файлы за пределами vendor?
Алан Шторм

Ответы:

3

Я просто настроил свой composer.jsonфайл, чтобы использовать 2.0.4 вместо 2.0.2 (вручную), а затем запустил composer updateи php bin/magento setup:upgrade. Работал здесь без нареканий.

Я полагаю, что установочный пакет Magento Composer выполняет установку файлов в app/папки etc и обновляет их при обновлении. Но эта последняя часть является лишь предположением, поскольку мне не пришлось ее отлаживать.

stefandoorn
источник
@alanstorm, любой из этих ответов помогает?
Стив Джонсон
@stefandoorn Вы можете открыть файл app/etc/NonComposerComponentRegistration.phpи подтвердить год авторского права
Кристоф на Fooman
/ ** * Copyright © 2016 Magento. Все права защищены. * См. COPYING.txt для деталей лицензии. * /
stefandoorn
@KristofatFooman Смотрите выше.
stefandoorn
2

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

Это мой composer.jsonсобственный проект https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Недавно я изменился, чтобы "magento/product-community-edition": "^2.0"иметь возможность обновляться с помощью простой composer update --with-dependencies magento/product-community-editionкоманды. Я всегда в явном виде называю то, что должно быть обновлено, чтобы не смешивать его с другими необходимыми мне пакетами, кроме magento, но поэтому мне нужен --with-dependenciesаргумент.

Очень важной частью этого рабочего процесса является фиксация composer.lockфайла после каждого (успешно протестированного) обновления. Как вы видите, различие файла блокировки слишком велико для GitHub, это результат всех обновлений зависимостей и причины, по которой вам не следует смешивать обновление magento с обновлением чего-то другого.

Как видите, я определил файлы для NonComposerComponentRegistrationсебя, вы можете иметь их несколько. Недостатком моего подхода является то, что когда происходят изменения в проекте composer.json, их необходимо применять вручную.

Когда вы спрашивали об обновлении NonComposerComponentRegistrationфайла, все еще есть «несколько» файлов, которые копируются из поставщика в целевой каталог, поэтому я назвал его явно, buildчтобы не смешивать собственные с генерируемыми / копируемыми материалами.

Надеюсь, это поможет, даже если это довольно уникальная установка M2.

Flyingmana
источник