Como atualizar o Magento2 usando o compositor

38

Não consigo atualizar meu magento2 ce usando o compositor. Não encontro nenhuma atualização, a única encontrada foi 'fabpot'.

Eu pensei que esse era o objetivo principal de uma configuração do compositor, então por que eu iria querer usar o back-end conforme explicado na documentação: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

Ou eu estou esquecendo de alguma coisa?

Agradecemos antecipadamente por qualquer ajuda.


EDITAR:

Segui a documentação oficial para instalar o Magento2 via compositor, como descrito aqui: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

O problema é que o arquivo composer.json é puxado usando o comando: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>magento definido na seção requerida do arquivo .json:

"require": {
    "magento/product-community-edition": "2.0.0",
    "composer/composer": "@alpha",
    "firegento/magesetup2": "dev-develop",
    "splendid/de_de": "^0.0.1"
},

Como você pode ver, a versão 2.0.0 está especificada.

Para que a atualização funcionasse, tive que alterar manualmente essa linha no arquivo .json da seguinte maneira:

 "magento/product-community-edition": "2.*",

Agora, a execução composer updateatualizou todos os módulos da versão 100.0.2 para 100.0.3.

Observe que isso ainda gera uma exceção de erro devido ao seguinte:

[ErrorException]                             
  Source /home/dev/git/mysite/vendor/magento/magento2-base/app/design/frontend/Magento does not exist

Agora, parece que faltam alguns essenciais, por exemplo, o arquivo bin / magento.

Alguém tem alguma idéia de como é feito corretamente, para que realmente funcione?

tecjam
fonte
Se você instalou o 2.0 via packagist, há um problema com o 2.0.1. Adicione repo.magento.com ao seu compositer.json e informações de autenticação relacionadas no arquivo auth.json.
Maddy
Atualizar o magento 2 usando o compositor exigiu muitos conhecimentos técnicos sobre a linha de comando. Se você não é conhecedor de tecnologia, talvez faça um upgrade via admin, magento commerce. Às vezes, o método do compositor falhava devido à falta de dependências.
D. Joes

Respostas:

58

Edite o arquivo composer.json na pasta raiz e altere a versão do magento na linha 5:

"version": "2.0.1",

e em "exigir"

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

Agora execute:

composer update

Então corra:

php bin/magento setup:upgrade

E finalmente reimplante os arquivos estáticos, que para mim é este comando:

php bin/magento setup:static-content:deploy de_DE en_US

Isso funcionou para mim.

tecjam
fonte
Muito obrigado tecjam, isso me ajudou muito! Eu estava procurando uma maneira de atualizar por cerca de uma semana. Saudações da Alemanha!
Java_Waldi
Ótima resposta. Os passos dados são muito simples de seguir.
Maniprakash Chinnasamy 17/03
5
Não há necessidade de esvaziar o diretório do fornecedor.
Mniess 7/12
Quando o comando update é executado, ele mostra o erro: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] O comando "compositor" não está definido.
Lovely Setia
42

Atualizando / Atualizando para o Magento 2.0.5 (via 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

Após a atualização, verifique sua versão do Magento com o seguinte comando:

php bin/magento --version

Atualizando para o Magento 2.3.x

Os comandos acima funcionam bem ao atualizar o Magento para 2.2.x.

Para atualizar para o Magento 2.3.x, você precisa seguir mais algumas etapas.

Aqui está o guia passo a passo para atualizar o Magento para o 2.3.x:

Ativar modo de manutenção

php bin/magento maintenance:enable

Especificar pacotes Magento

composer require magento/product-community-edition=2.3.0 --no-update

Especifique pacotes adicionais

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

Remova pacotes não utilizados

composer remove --dev sjparkinson/static-review fabpot/php-cs-fixer --no-update

Atualizar carregamento automático

Abra composer.jsone edite a "autoload": "psr-4"seção para incluir "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/"
    },
    ...
}

Aplicar atualizações

composer update

Limpe o cache do Magento

php bin/magento cache:clean

Limpar caches manualmente e conteúdo gerado

Limpe os subdiretórios vare generated:

rm -rf <Magento install dir>/var/cache/*
rm -rf <Magento install dir>/var/page_cache/*
rm -rf <Magento install dir>/generated/code/*

Se você usar um armazenamento em cache que não seja o sistema de arquivos, como Redis ou Memcached, deverá limpar manualmente o cache também.

Atualize o esquema e os dados do banco de dados

php bin/magento setup:upgrade

Desativar modo de manutenção

php bin/magento maintenance:disable

Por fim, verifique sua versão do Magento

php bin/magento --version

Leia mais: https://devdocs.magento.com/guides/v2.3/comp-mgr/cli/cli-upgrade.html

Mukesh Chapagain
fonte
2
Esta multa trabalhou :)
Arvind07
1
Você não precisa fazer um n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost
1
Para mim, o comando composer requireestragou tudo. magentoO comando também está ausente bin.
Dyin
1
Depois de seguir as etapas, diz "Magento suporta 7.0.2, 7.0.4 e 7.0.6 ou posterior. Por favor, leia devdocs.magento.com/guides/v1.0/install-gde/… " Eu tenho o PHP 7.1.11
Wasiq Shahrukh
3
Achei esta resposta mais útil que outras. Já o utilizou 4 vezes, atualizando várias versões menores do M2 sem nenhum problema. Voto por favor !!
Kalpesh
15

Ao atualizar através do compositor, você pode escolher a versão da qual precisa atualizar por meio de uma atualização do compositor. Por exemplo:

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

O mesmo comando pode ser executado se você estiver usando o Enterprise. Por exemplo:

composer require magento/product-enterprise-edition 2.0.6 --no-update

Após executar o comando relevante, execute

composer update

Quando o compositor terminar, atualize seu banco de dados executando o comando:

php bin/magento setup:upgrade 

Como sempre, faça um backup do seu banco de dados e use uma ferramenta de versão como o git para se proteger da atualização que não está planejada.

Richard Cripps
fonte
Olá, refiro seu comentário e estou recebendo um erro. você pode ver abaixo o erro. O pacote solicitado magento / product-enterprise-edition 2.0.6 existe como magento / product-enterprise-edition [2.0.2], mas estes são rejeitados por sua restrição. você pode ajudar a resolver esse problema.
Kartik Asodariya
7

Para atualizar o Magento 2.0.x com dados de amostra , segui estas etapas (também funciona para atualizar para o 2.1 RC):

  1. Aplique esse commit manualmente (é uma correção de bug para os dados de amostra lançados com 2.1)
  2. Redefinir os módulos de dados de amostra no Magento

    bin/magento sampledata:reset
  3. Atualize o composer.json sem atualizar imediatamente as dependências (isso resultaria em conflito porque as versões antigas do módulo magento ainda estão bloqueadas). Para 2.0.7:

    composer require --no-update magento/product-community-edition ~2.0.7

    ou para o último candidato a lançamento 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [somente se você atualizar para> = 2.1] Remova os módulos de dados de amostra de 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. Execute a atualização real do compositor:

    composer update
  6. [somente se você atualizar para> = 2.1] Reinstale os dados de amostra (pode ser necessário aplicar o patch de (2) novamente):

    bin/magento sampledata:deploy
Fabian Schmengler
fonte
quando eu executar o comando composer updatea pedir nome de usuário e senha, o que este nome de usuário e senha, se você pode me guiar
amit_game
Olá @amit_game: Por alguma razão, o repositório repo.magento.com requer autenticação. Você pode criar suas chaves de autenticação no marketplace.magento.com usando o seguinte guia: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam
0

Execução passo a passo seguindo o comando

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

Após a atualização, verifique sua versão do Magento com o seguinte comando:

php bin/magento --version
Ravindrasinh Zala
fonte
0

Talvez você esteja perdendo alguma coisa. Primeiro, conecte sua loja ao SSH. Agora vá para o diretório raiz da sua loja.

Execute todos os comandos um por um:

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
Syed Muneeb Ul Hasan
fonte
Eu já respondi minha própria pergunta, obrigado. Como você pode ver, foi um problema com a primeira versão do magento 2.0 - a documentação e os problemas foram corrigidos. Além disso, eu nunca faria uma atualização do compositor diretamente no servidor, nem na loja ao vivo.
tecjam
0

Pode-se atualizar o magento 2 usando os dois métodos básicos, um é do painel de administração e outro é o compositor.

rohimic
fonte