如何使用作曲家更新Magento2


38

我似乎无法使用composer更新magento2 ce。我没有发现任何更新,唯一发现的是“ fabpot”。

我以为这是作曲家设置的全部要点,所以为什么我要按照文档中的说明使用后端:http : //devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

还是我错过了什么?

在此先感谢您的帮助。


编辑:

我按照官方文档通过composer安装了Magento2,如下所述:http ://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

问题是使用命令:composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>.json的必需部分下定义的magento 提取了composer.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文件。

任何人都知道如何正确完成它才能真正起作用?


如果通过packagist安装了2.0,则2.0.1存在问题。请将repo.magento.com添加到您的composer.json中,并在auth.json文件中添加相关的身份验证信息。
Maddy

使用Composer升级magento 2需要许多有关命令行的技术知识。如果您不懂技术,则可以通过管理员,Magento Commerce进行升级。有时,composer方法由于缺少依赖关系而失败。
D. Joes

Answers:


58

编辑根文件夹中的composer.json文件,并在第5行中更改magento的版本:

"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 '16

好答案。给定的步骤非常简单。
Maniprakash Chinnasamy

5
无需清空供应商目录。
mniess

运行更新命令时,显示错误:[Symfony \ Component \ Console \ Exception \ CommandNotFoundException]未定义命令“ composer”。
可爱的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

手动清除缓存和生成的内容

清除vargenerated子目录:

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 '16

1
您不需要做一个 n98-magerun2 setup:static-content:deploy en_US吗?
Jeroen Vermeulen-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
Wasiq Shahrukh

3
我发现这个答案比其他答案更有用。已经使用它4次来升级各种次要M2版本,没有任何问题。赞这个!!
Kalpesh '18年

15

通过作曲家升级时,您可以选择需要通过作曲家升级进行升级的版本。例如:

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

如果使用企业版,则可以运行相同的命令。例如:

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]存在,但由于您的约束而被拒绝。您能帮忙解决这个问题吗?
Kartik Asodariya '17

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,一种是从管理面板升级,另一种是使用composer。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.