Magento 2: aggiornamento di un'installazione "Meta Package"


11

Qualche tempo fa, ho installato Magento 2 tramite il metapacchetto del compositore . Questo è anche noto come installazione dell'integratore.

Questo sembra aver installato Magento CE 2.0.1. C'è un modo per aggiornare questa versione all'ultima Magento CE 2.0.3? Mi rendo conto che potrei aggiornare il composer.jsoncosì che 2.0.1 qui

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

diventa

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

Tuttavia, questo perderebbe file come

app/etc/NonComposerComponentRegistration.php 

Oltre a qualsiasi aggiornamento del file composer.json stesso.

È possibile aggiornare una versione di Magento 2 installata con il meta pacchetto? O non è questo l'intento dei meta-pacchetti?


alankent.me/2016/03/31/… potrebbe avere alcune informazioni utili. Credo che NonComposerComponentRegistration.php verrà aggiornato quando esegui l'aggiornamento a causa del plugin di installazione magento per Composer. Se esiste un nuovo modulo 'magento2-base', sostituirà i file precedentemente installati dal modulo base. L'articolo raccomanda "usa git" per preservare le modifiche locali. Puoi correggere il file predefinito github.com/magento/magento2/blob/develop/app/etc/… , che ottiene il pacchetto nel pacchetto "magento2-base".
Alan Kent,

"Credo che NonComposerComponentRegistration.php verrà aggiornato" che è negativo - o, almeno, nella mia istanza specifica passando da 2.0.1 a 2.0.3 l'aggiornamento del compositore non ha installato NonComposerComponentRegistration.php e non ha aggiornato l'app /etc/di.xml.
Alan Storm,

Puoi aggiornare il metapacchetto con System Upgrade o dalla riga di comando. Avvertenza in questo momento stiamo sostituendo 2.0.3 con 2.0.4 e l'accesso a repo.magento.comè bloccato. Aspetta un annuncio. Passaggio 1, eseguire composer require <string> <version> --noupdate(controllare la sintassi). Passo 2, corri composer update. Passo 3, corribin/magento setup:upgrade
Steve Johnson,

@SteveJohnson Come verranno aggiornati questi file all'esterno vendor?
Alan Storm,

Risposte:


3

Ho appena modificato il mio composer.jsonfile per usare 2.0.4 invece di 2.0.2 (a mano), e successivamente ho funzionato composer updatee php bin/magento setup:upgrade. Ha funzionato perfettamente qui.

Credo che il pacchetto di installazione di Magento Composer gestisca l'installazione di file nelle app/cartelle ecc., Che aggiorna anche le cose durante l'aggiornamento. Ma quest'ultima parte è solo un presupposto poiché non ho dovuto eseguire il debug.


@alanstorm, una di queste risposte aiuta?
Steve Johnson,

@stefandoorn puoi per favore aprire il file app/etc/NonComposerComponentRegistration.phpe confermare l'anno del copyright
Kristof a Fooman

/ ** * Copyright © 2016 Magento. Tutti i diritti riservati. * Vedere COPYING.txt per i dettagli della licenza. * /
stefandoorn,

@KristofatFooman Vedi sopra.
stefandoorn,

2

Al momento non riesco a provarlo, poiché il repository del compositore di connect è rotto, ma spero che sia ancora utile.

Questo è il composer.jsonmio progetto personale https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Ho cambiato di recente per "magento/product-community-edition": "^2.0"essere effettivamente in grado di aggiornare con un semplice composer update --with-dependencies magento/product-community-editioncomando. Indico sempre esplicitamente cosa dovrebbe essere aggiornato, per non confonderlo con gli altri pacchetti che richiedo oltre a magento, ma quindi ho bisogno --with-dependenciesdell'argomento.

Una parte molto importante di questo flusso di lavoro è il commit del composer.lockfile dopo ogni aggiornamento (testato con successo). Come vedi il diff del file lock è troppo grande per GitHub, questo è il risultato di tutti gli aggiornamenti delle dipendenze e del motivo, per cui non dovresti mescolare un aggiornamento magento con un aggiornamento di qualcos'altro.

Come puoi vedere, ho definito i file per NonComposerComponentRegistrationme stesso, puoi averli multipli. L'aspetto negativo del mio approccio è che quando si verificano cambiamenti nel progetto composer.json, è necessario applicarli manualmente.

Come ti è stato chiesto dell'aggiornamento del NonComposerComponentRegistrationfile, ci sono ancora alcuni "pochi" file che vengono copiati dal fornitore nella directory di destinazione, ecco perché l'ho chiamato esplicitamente buildper non confonderlo con elementi generati / copiati.

Spero che sia d'aiuto, anche se si tratta di un'impostazione davvero unica di M2.

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.