Magento 2:升级“元软件包”安装


11

前阵子,我通过composer meta-package安装了Magento 2 。这也称为集成器安装。

这似乎已经安装了Magento CE 2.0.1。有没有办法将此版本升级到最新的Magento CE 2.0.3?我意识到我可以更新composer.json2.0.1

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

变成

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

但是,那样会丢失诸如

app/etc/NonComposerComponentRegistration.php 

以及对composer.json文件本身的任何更新。

是否可以更新随meta包安装的Magento 2的版本?还是这不是meta软件包的目的?


alankent.me/2016/03/31/…可能有一些有用的信息。我相信由于Composer的magento安装程序插件,在您进行升级时,更新NonComposerComponentRegistration.php 。如果有一个新的“ 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。
艾伦·风暴

您可以使用系统升级或从命令行更新元软件包。请注意,目前我们将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
艾伦·风暴

Answers:


3

我只是将composer.json文件调整为使用2.0.4而不是2.0.2(手动),然后运行composer updatephp bin/magento setup:upgrade。在这里工作完美。

我相信Magento Composer安装程序包可以处理app/etc.文件夹中文件的安装,这还会在升级时更新内容。但是,最后一部分只是假设,因为我不必调试它。


@alanstorm,这两个答案有帮助吗?
史蒂夫·约翰逊

@stefandoorn您可以打开文件app/etc/NonComposerComponentRegistration.php并确认版权年份

/ ** *版权所有©2016 Magento。版权所有。*有关许可证的详细信息,请参阅COPYING.txt。* /
stefandoorn

@KristofatFooman参见上文。
stefandoorn '16

2

我目前无法测试,因为connect的作曲者存储库已损坏,但我希望它仍然有用。

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的一个非常独特的设置。

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.