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.