Magento 2: Atualizando uma Instalação do “Meta Package”

11

Há algum tempo, instalei o Magento 2 através do meta-pacote do compositor . Isso também é conhecido como instalação do integrador.

Parece ter instalado o Magento CE 2.0.1. Existe uma maneira de atualizar esta versão para o Magento CE 2.0.3 mais recente? Sei que poderia atualizar o composer.jsonpara que o 2.0.1 aqui

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

torna-se

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

No entanto, isso perderia arquivos como

app/etc/NonComposerComponentRegistration.php 

Bem como quaisquer atualizações no próprio arquivo composer.json.

É possível atualizar uma versão do Magento 2 instalada com o meta pacote? Ou não é essa a intenção dos meta-pacotes?

Alan Storm
fonte
alankent.me/2016/03/31/… pode ter algumas informações úteis. Acredito que o NonComposerComponentRegistration.php será atualizado quando você fizer a atualização devido ao plug-in do instalador magento para o Composer. Se houver um novo módulo 'magento2-base', ele substituirá os arquivos instalados anteriormente pelo módulo base. O artigo recomenda "use git" para preservar as alterações locais. Você pode refinar o arquivo padrão github.com/magento/magento2/blob/develop/app/etc/… , que coloca o pacote no pacote "magento2-base".
Alan Kent
"Acredito que o NonComposerComponentRegistration.php será atualizado" que é negativo - ou, pelo menos, na minha instância específica, passando de 2.0.1 para 2.0.3, a atualização do compositor não instalou o NonComposerComponentRegistration.php e não atualizou o aplicativo /etc/di.xml.
Alan Storm
Você pode atualizar o metapacote com a Atualização do sistema ou na linha de comando. Aviso neste momento, estamos substituindo o 2.0.3 pelo 2.0.4 e o acesso ao repo.magento.comé bloqueado. Aguarde um anúncio. Etapa 1, execute composer require <string> <version> --noupdate(verifique a sintaxe). Etapa 2, execute composer update. Etapa 3, executebin/magento setup:upgrade
Steve Johnson
@SteveJohnson Como isso atualizará os arquivos fora de vendor?
Alan Storm

Respostas:

3

Acabei de ajustar meu composer.jsonarquivo para usar o 2.0.4 em vez do 2.0.2 (manualmente) e depois executei composer updatee php bin/magento setup:upgrade. Trabalhou perfeitamente aqui.

Acredito que o pacote instalador do Magento Composer lida com a instalação de arquivos nas app/pastas etc., que também atualizam as coisas na atualização. Mas, esta última parte é apenas suposição, pois não tive que depurá-la.

stefandoorn
fonte
@ alanstorm, alguma dessas respostas ajuda?
9788 Steve
@stefandoorn por favor você pode abrir o arquivo app/etc/NonComposerComponentRegistration.phpe confirme o ano do copyright
Kristof em Fooman
/ ** * Copyright © 2016 Magento. Todos os direitos reservados. * Consulte COPYING.txt para obter detalhes da licença. * /
stefandoorn 03/04
@KristofatFooman Veja acima.
stefandoorn
2

No momento, não posso testá-lo, pois o repositório do compositor do connect está quebrado, mas espero que ainda seja útil.

Este é o composer.jsonmeu projeto https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Mudei recentemente para "magento/product-community-edition": "^2.0"realmente poder atualizar com um composer update --with-dependencies magento/product-community-editioncomando simples . Eu sempre nomeio explicitamente o que deve ser atualizado, para não misturá-lo com os outros pacotes necessários além do magento, mas, portanto, preciso do --with-dependenciesargumento.

Uma parte muito importante desse fluxo de trabalho é confirmar o composer.lockarquivo após cada atualização (testada com êxito). Como você vê que o diff do arquivo de bloqueio é muito grande para o GitHub, isso é resultado de todas as atualizações de dependência e o motivo pelo qual você não deve misturar uma atualização magento com uma atualização de outra coisa.

Como você pode ver, eu defini os arquivos para NonComposerComponentRegistrationmim, você pode ter vários deles. A desvantagem da minha abordagem é que, quando mudanças no projeto composer.jsonacontecem, você precisa aplicá-las manualmente.

Como você perguntou sobre a atualização do NonComposerComponentRegistrationarquivo, ainda existem alguns "arquivos", que são copiados do fornecedor para o diretório de destino, por isso o nomeei explicitamente buildpara não confundir com o material gerado / copiado.

Espero que ajude, mesmo que seja uma configuração bastante única do M2.

Flyingmana
fonte