Magento 2: Memutakhirkan Instalasi “Paket Meta”

11

Beberapa waktu yang lalu, saya menginstal Magento 2 melalui paket meta komposer . Ini juga dikenal sebagai instal integrator.

Ini tampaknya telah menginstal Magento CE 2.0.1. Apakah ada cara untuk meningkatkan versi ini ke Magento CE 2.0.3 terbaru? Saya sadar saya bisa memperbarui composer.jsonsehingga 2.0.1 di sini

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

menjadi

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

Namun, itu akan melewatkan file seperti

app/etc/NonComposerComponentRegistration.php 

Serta setiap pembaruan untuk file composer.json itu sendiri.

Apakah mungkin untuk memperbarui versi Magento 2 yang diinstal dengan paket meta? Atau bukankah ini maksud dari paket meta?

Alan Storm
sumber
alankent.me/2016/03/31/... mungkin memiliki beberapa informasi yang berguna. Saya percaya NonComposerComponentRegistration.php akan diperbarui ketika Anda melakukan peningkatan karena plugin penginstal magento untuk Composer. Jika ada modul 'magento2-base' baru, itu akan menggantikan file yang sebelumnya diinstal oleh modul dasar. Artikel merekomendasikan "gunakan git" untuk mempertahankan perubahan lokal. Anda dapat memperbaiki file default github.com/magento/magento2/blob/develop/app/etc/… , yang memasukkan paket ke paket "magento2-base".
Alan Kent
"Saya percaya NonComposerComponentRegistration.php akan diperbarui" itu negatif - atau, setidaknya, dalam contoh spesifik saya pindah dari 2.0.1 ke 2.0.3 upgrade komposer tidak menginstal NonComposerComponentRegistration.php, dan tidak memperbarui aplikasi /etc/di.xml.
Alan Storm
Anda dapat memperbarui metapackage dengan System Upgrade atau dari baris perintah. Peringatan saat ini kami mengganti 2.0.3 dengan 2.0.4 dan akses ke repo.magento.comdiblokir. Tunggu pengumuman. Langkah 1, jalankan composer require <string> <version> --noupdate(periksa sintaks). Langkah 2, jalankan composer update. Langkah 3, jalankanbin/magento setup:upgrade
Steve Johnson
@SteveJohnson Bagaimana ini akan memperbarui file di luar vendor?
Alan Storm

Jawaban:

3

Saya hanya menyesuaikan composer.jsonfile saya untuk menggunakan 2.0.4 daripada 2.0.2 (dengan tangan), dan kemudian berlari composer updatedan php bin/magento setup:upgrade. Bekerja tanpa cacat di sini.

Saya percaya paket pemasang Magento Composer menangani instalasi file di app/folder dll., Yang juga memperbarui hal-hal saat upgrade. Tapi, bagian terakhir ini hanya asumsi karena saya tidak perlu men-debug itu.

stefandoorn
sumber
@alanstorm, Apakah salah satu dari jawaban ini membantu?
Steve Johnson
@stefandoorn dapatkah Anda membuka file app/etc/NonComposerComponentRegistration.phpdan mengonfirmasi tahun hak cipta
Kristof at Fooman
/ ** * Hak Cipta © 2016 Magento. Seluruh hak cipta. * Lihat COPYING.txt untuk perincian lisensi. * /
stefandoorn
@KristofatFooman Lihat di atas.
stefandoorn
2

Saat ini saya tidak dapat mengujinya, karena repositori komposer connect rusak, tapi saya harap itu masih berguna.

Itu composer.jsonproyek saya sendiri https://github.com/Cotya/DashboardProject/blob/6ce3f307c53a3fb54c94d8a7bd70b306036da928/composer.json

Saya berubah baru-baru ini untuk "magento/product-community-edition": "^2.0"benar-benar dapat memperbarui dengan composer update --with-dependencies magento/product-community-editionperintah sederhana . Saya selalu secara eksplisit menyebutkan apa yang harus diperbarui, untuk tidak mencampurnya dengan paket lain yang saya butuhkan selain magento, tetapi karena itu saya perlu --with-dependenciesargumen.

Bagian yang sangat penting dari alur kerja ini adalah mengkomit composer.lockfile setelah setiap pembaruan (berhasil diuji). Seperti yang Anda lihat, perbedaan file kunci terlalu besar untuk GitHub, itu adalah hasil dari semua pembaruan ketergantungan dan alasannya, mengapa Anda tidak perlu mencampuradukkan pembaruan magento dengan pembaruan dari sesuatu yang lain.

Seperti yang Anda lihat, saya telah menentukan file untuk NonComposerComponentRegistrationdiri saya sendiri, Anda dapat memiliki beberapa di antaranya. Kelemahan dari pendekatan saya adalah, bahwa ketika perubahan dalam proyek composer.jsonterjadi, Anda harus menerapkannya secara manual.

Ketika Anda bertanya tentang pembaruan NonComposerComponentRegistrationfile, masih ada beberapa file, yang dapat disalin dari vendor ke direktori target, itu sebabnya saya menamainya secara eksplisit builduntuk tidak mencampur sendiri dengan hal-hal yang dihasilkan / disalin.

Semoga itu bisa membantu, meskipun ini pengaturan M2 yang cukup unik.

Flyingmana
sumber