Come aggiornare Magento2 usando il compositore


38

Non riesco ad aggiornare il mio computer con compositore. Non trovo alcun aggiornamento, l'unico trovato è stato "fabpot".

Ho pensato che questo fosse il punto centrale di una configurazione del compositore, quindi perché dovrei usare il backend come spiegato nella documentazione: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -start.html

Oppure mi sfugge qualcosa?

Grazie in anticipo per qualsiasi aiuto.


MODIFICARE:

Ho seguito la documentazione ufficiale per installare Magento2 tramite compositore, come descritto qui: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Il problema è che il file composer.json che viene estratto usando il comando: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>definito magento nella sezione richiesta di .json:

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

Come puoi vedere, viene specificata la versione 2.0.0.

Perché l'aggiornamento funzioni, ho dovuto cambiare manualmente quella riga nel file .json come segue:

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

Ora in esecuzione composer updatetutti i moduli aggiornati dalla versione 100.0.2 alla 100.0.3.

Si noti che ciò genera ancora un'eccezione di errore a causa di quanto segue:

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

Ora sembra che manchino alcuni elementi essenziali, ad esempio il file bin / magento.

Qualcuno ha qualche idea di come sia fatto correttamente in modo che funzioni davvero?


Se hai installato 2.0 tramite packagist, c'è un problema con 2.0.1. Aggiungi repo.magento.com al tuo composer.json e alle relative informazioni di autenticazione nel file auth.json.
Maddy,

L'aggiornamento di magento 2 con il compositore richiede molte conoscenze tecniche sulla riga di comando. Se non sei esperto di tecnologia, magari esegui l'upgrade tramite admin, magento commerce. A volte il metodo del compositore falliva a causa delle dipendenze mancanti.
D. Joes

Risposte:


58

Modifica il file composer.json nella cartella principale e modifica la versione di magento nella riga 5:

"version": "2.0.1",

e sotto "richiedi"

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

Ora esegui:

composer update

Quindi eseguire:

php bin/magento setup:upgrade

E infine ridistribuire i file statici, che per me è questo comando:

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

Questo ha funzionato per me.


Grazie mille tecjam, questo mi ha aiutato molto! Stavo cercando un modo per aggiornare per circa una settimana. Saluti dalla Germania!
Java_Waldi,

Bella risposta. I passaggi indicati sono molto semplici da seguire.
Maniprakash Chinnasamy,

5
Non è necessario svuotare la directory del fornitore.
mniess

Quando viene eseguito il comando di aggiornamento, viene visualizzato l'errore: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Il comando "compositore" non è definito.
Adorabile Setia il

42

Aggiornamento / aggiornamento a 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

Dopo l'aggiornamento, controlla la tua versione di Magento con il seguente comando:

php bin/magento --version

Aggiornamento a Magento 2.3.x

I comandi sopra funzionano bene durante l'aggiornamento di Magento a 2.2.x.

Per eseguire l'aggiornamento a Magento 2.3.x, devi seguire alcuni altri passaggi.

Ecco la guida dettagliata per aggiornare Magento a 2.3.x:

Abilita modalità di manutenzione

php bin/magento maintenance:enable

Specifica i pacchetti Magento

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

Specifica pacchetti aggiuntivi

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

Rimuovere i pacchetti non utilizzati

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

Aggiorna caricamento automatico

Apri composer.jsone modifica la "autoload": "psr-4"sezione per includere "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/"
    },
    ...
}

Applica aggiornamenti

composer update

Pulisci la cache di Magento

php bin/magento cache:clean

Cancella manualmente le cache e il contenuto generato

Cancellare il vare generatedsottodirectory:

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

Se si utilizza una memoria cache diversa dal filesystem, come Redis o Memcached, è necessario svuotare manualmente la cache anche lì.

Aggiorna lo schema e i dati del database

php bin/magento setup:upgrade

Disabilita la modalità di manutenzione

php bin/magento maintenance:disable

Infine, controlla la tua versione di Magento

php bin/magento --version

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



1
Non hai bisogno di fare un n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost,

1
Per me, il comando ha composer requireincasinato tutto. magentomanca anche il comando bin.
Dyin,

1
Dopo aver seguito i tuoi passaggi, dice "Magento supporta 7.0.2, 7.0.4 e 7.0.6 o versioni successive. Leggi devdocs.magento.com/guides/v1.0/install-gde/… " Ho PHP 7.1.11
Wasiq Shahrukh,

3
Ho trovato questa risposta più utile di altre. L'ho già utilizzato 4 volte aggiornando varie versioni secondarie M2 senza alcun problema. Valuta questo !!
Kalpesh,

15

Quando esegui l'upgrade tramite il compositore, puoi scegliere la versione di cui devi eseguire l'aggiornamento tramite un aggiornamento del compositore. Per esempio:

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

Lo stesso comando può essere eseguito se si utilizza Enterprise. Per esempio:

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

Dopo aver eseguito il comando pertinente, eseguire

composer update

Al termine del compositore, aggiornare il database eseguendo il comando:

php bin/magento setup:upgrade 

Come sempre, fai un backup del tuo database e usa uno strumento di versioning come git per proteggerti dall'aggiornamento che non pianificherà.


Ciao, rimando il tuo commento e ricevo un errore. puoi vedere sotto l'errore. Il pacchetto richiesto magento / product-enterprise-edition 2.0.6 esiste come magento / product-enterprise-edition [2.0.2] ma questi sono respinti dal tuo vincolo. puoi per favore aiutare a risolvere questo problema.
Kartik Asodariya,

7

Per aggiornare Magento 2.0.x con dati di esempio , ho seguito questi passaggi (funziona anche per l'aggiornamento a 2.1 RC):

  1. Applicare questo commit manualmente (è una correzione di bug per i dati di esempio rilasciati con 2.1)
  2. Ripristina i moduli di dati di esempio in Magento

    bin/magento sampledata:reset
  3. Aggiorna composer.json senza aggiornare immediatamente le dipendenze (ciò comporterebbe un conflitto perché le vecchie versioni del modulo magento sono ancora bloccate). Per 2.0.7:

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

    o per l'ultimo candidato alla versione 2.1

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [solo se aggiorni a> = 2.1] Rimuovi i moduli di dati di esempio da 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. Esegui l'aggiornamento effettivo del compositore:

    composer update
  6. [solo se aggiorni a> = 2.1] Reinstalla i dati di esempio (potrebbe essere necessario applicare nuovamente la patch da (2)):

    bin/magento sampledata:deploy

quando eseguo il comando composer updatechiede il nome utente e la password, quali sono questo nome utente e password, se puoi guidarmi
amit_game

Ciao @amit_game: per qualche motivo il repository repo.magento.com richiede autenticazione. Puoi creare le tue chiavi di autenticazione su marketplace.magento.com usando la seguente guida: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam

0

Passo dopo passo eseguire il comando seguente

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

Dopo l'aggiornamento, controlla la tua versione di Magento con il seguente comando:

php bin/magento --version

0

Forse ti stai perdendo qualcosa. Innanzitutto, collega il tuo negozio con SSH. Ora vai alla directory principale del tuo negozio.

Esegui tutti i comandi uno per uno:

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

Ho già risposto alla mia domanda, grazie. Come puoi vedere, è stato un problema con la prima versione di Magento 2.0: la documentazione e i problemi sono stati risolti da allora. Inoltre, non avrei mai fatto un aggiornamento del compositore direttamente sul server, non importa nel negozio live.
tecjam,

0

Si può aggiornare magento 2 usando i due metodi di base, uno è dal pannello di amministrazione e l'altro sta usando il compositore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.