Cara memperbarui Magento2 menggunakan komposer


38

Sepertinya saya tidak dapat memperbarui magento2 ce saya menggunakan komposer. Saya tidak menemukan pembaruan, satu-satunya yang ditemukan adalah 'fabpot'.

Saya pikir ini adalah inti dari pengaturan komposer, jadi mengapa saya ingin menggunakan backend seperti yang dijelaskan dalam dokumentasi: http://devdocs.magento.com/guides/v2.0/comp-mgr/upgrader/upgrade -mulai.html

Atau apakah saya melewatkan sesuatu?

Terima kasih sebelumnya atas bantuannya.


EDIT:

Saya mengikuti dokumentasi resmi untuk menginstal Magento2 melalui komposer, sebagaimana dijelaskan di sini: http://devdocs.magento.com/guides/v2.0/install-gde/prereq/integrator_install.html#integrator-first-composer-ce

Masalahnya adalah bahwa file composer.json yang ditarik menggunakan perintah: composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <installation directory name>magento didefinisikan di bawah bagian yang diperlukan dari .json:

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

Seperti yang Anda lihat, versi 2.0.0 ditentukan.

Agar pembaruan berfungsi, saya harus secara manual mengubah baris dalam file .json sebagai berikut:

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

Sekarang berjalan, composer updateperbarui semua modul dari versi 100.0.2 hingga 100.0.3.

Harap perhatikan bahwa ini masih menimbulkan pengecualian kesalahan karena hal berikut:

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

Sekarang tampaknya beberapa esensial hilang, misalnya file bin / magento.

Adakah yang punya ide bagaimana melakukannya dengan benar sehingga benar-benar berfungsi?


Jika Anda menginstal 2.0 via packagist, ada masalah dengan 2.0.1. Silakan tambahkan repo.magento.com ke composer.json Anda, dan info auth terkait di file auth.json.
Maddy

Upgrade magento 2 menggunakan komposer membutuhkan banyak pengetahuan teknis tentang baris perintah. Jika Anda tidak mengerti teknologi, mungkin tingkatkan melalui admin, perdagangan magento. Kadang-kadang metode komposer gagal karena ketergantungan tidak ada.
D. Joes

Jawaban:


58

Edit file composer.json pada folder root dan ubah versi magento di baris 5:

"version": "2.0.1",

dan di bawah "membutuhkan"

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

Sekarang jalankan:

composer update

Lalu lari:

php bin/magento setup:upgrade

Dan akhirnya menyebarkan kembali file statis, yang bagi saya adalah perintah ini:

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

Itu berhasil bagi saya.


Terima kasih banyak tecjam, ini banyak membantu saya! Saya mencari cara untuk memperbarui selama sekitar satu minggu. Salam dari Jerman!
Java_Waldi

Jawaban yang bagus Langkah-langkah yang diberikan sangat mudah diikuti.
Maniprakash Chinnasamy

5
Tidak perlu mengosongkan dir vendor.
mniess

Ketika perintah pembaruan dijalankan, itu menunjukkan kesalahan: [Symfony \ Component \ Console \ Exception \ CommandNotFoundException] Perintah "komposer" tidak didefinisikan.
Lovely Setia

42

Memperbarui / Meningkatkan ke 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

Setelah meningkatkan, periksa versi Magento Anda dengan perintah berikut:

php bin/magento --version

Meningkatkan ke Magento 2.3.x

Perintah di atas berfungsi dengan baik saat meningkatkan Magento ke 2.2.x.

Untuk meningkatkan ke Magento 2.3.x, Anda harus mengikuti beberapa langkah lagi.

Berikut panduan langkah demi langkah untuk memutakhirkan Magento ke 2.3.x:

Aktifkan mode pemeliharaan

php bin/magento maintenance:enable

Tentukan paket Magento

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

Tentukan paket tambahan

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

Hapus paket yang tidak digunakan

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

Perbarui autoload

Buka composer.jsondan edit "autoload": "psr-4"bagian untuk memasukkan "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/"
    },
    ...
}

Terapkan pembaruan

composer update

Bersihkan cache Magento

php bin/magento cache:clean

Secara manual menghapus cache dan konten yang dihasilkan

Hapus vardan generatedsubdirektori:

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

Jika Anda menggunakan penyimpanan cache selain dari sistem file, seperti Redis atau Memcached, Anda juga harus menghapus cache secara manual.

Perbarui skema dan data basis data

php bin/magento setup:upgrade

Nonaktifkan mode perawatan

php bin/magento maintenance:disable

Akhirnya, periksa versi Magento Anda

php bin/magento --version

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


2
Ini bekerja dengan baik :)
Arvind07

1
Apakah kamu tidak perlu melakukan n98-magerun2 setup:static-content:deploy en_US?
Jeroen Vermeulen - MageHost

1
Bagi saya, perintah itu composer requiremengacaukan segalanya. magentoperintah juga tidak ada bin.
Dyin

1
Setelah mengikuti langkah-langkah Anda dikatakan "Magento mendukung 7.0.2, 7.0.4, dan 7.0.6 atau lebih baru. Silakan baca devdocs.magento.com/guides/v1.0/install-gde/… " "Saya memiliki PHP 7.1.11
Wasiq Shahrukh

3
Saya menemukan jawaban ini lebih bermanfaat daripada yang lain. Sudah menggunakannya 4 kali meningkatkan berbagai versi M2 minor tanpa masalah. Suara positif ini !!
Kalpesh

15

Saat memutakhirkan melalui komposer, Anda dapat memilih versi yang perlu Anda tingkatkan melalui peningkatan komposer. Sebagai contoh:

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

Perintah yang sama dapat dijalankan jika menggunakan Enterprise. Sebagai contoh:

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

Setelah menjalankan perintah yang relevan, jalankan

composer update

Setelah komposer selesai, tingkatkan basis data Anda dengan menjalankan perintah:

php bin/magento setup:upgrade 

Seperti biasa, buat cadangan dari basis data Anda dan gunakan alat versi seperti git untuk melindungi diri Anda dari peningkatan yang tidak sesuai rencana.


Halo, saya merujuk komentar Anda dan mendapatkan kesalahan. Anda dapat melihat kesalahan di bawah ini. Paket yang diminta magento / produk-perusahaan-edisi 2.0.6 ada sebagai magento / produk-perusahaan-edisi [2.0.2] tetapi ini ditolak oleh kendala Anda. bisakah Anda membantu menyelesaikan masalah ini?
Kartik Asodariya

7

Untuk memperbarui Magento 2.0.x dengan data sampel , saya mengikuti langkah-langkah ini (juga berfungsi untuk memperbarui ke 2.1 RC):

  1. Terapkan komit ini secara manual (ini adalah perbaikan bug untuk data sampel yang dirilis dengan 2.1)
  2. Atur ulang modul data sampel di Magento

    bin/magento sampledata:reset
  3. Perbarui composer.json tanpa segera memperbarui dependensi (ini akan mengakibatkan konflik karena versi modul magento lama masih terkunci). Untuk 2.0.7:

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

    atau untuk kandidat rilis 2.1 terbaru

    composer require --no-update magento/product-community-edition 2.1.0-rc3
  4. [hanya jika Anda memperbarui ke> = 2.1] Hapus modul data sampel dari 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. Jalankan pembaruan komposer yang sebenarnya:

    composer update
  6. [hanya jika Anda memperbarui ke> = 2.1] Instal ulang data sampel (Anda mungkin perlu menerapkan tambalan dari (2) lagi):

    bin/magento sampledata:deploy

ketika saya menjalankan perintahnya composer updatemenanyakan nama pengguna dan kata sandi, apa nama pengguna dan kata sandi ini, jika Anda dapat membimbing saya
amit_game

Hai @amit_game: Untuk beberapa alasan repositori repo.magento.com memerlukan otentikasi. Anda dapat membuat kunci auth di marketplace.magento.com menggunakan panduan berikut: devdocs.magento.com/guides/v2.0/install-gde/prereq/…
tecjam

0

Langkah demi langkah, jalankan perintah berikut

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

Setelah meningkatkan, periksa versi Magento Anda dengan perintah berikut:

php bin/magento --version

0

Mungkin Anda melewatkan sesuatu. Pertama, hubungkan toko Anda dengan SSH. Sekarang, masuklah ke direktori root toko Anda.

Jalankan semua perintah satu per satu:

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

Saya sudah menjawab pertanyaan saya sendiri, terima kasih. Seperti yang Anda lihat itu adalah masalah dengan rilis pertama dari Magento 2.0 - dokumentasi dan masalah sejak itu telah diperbaiki .. Yang paling penting saya tidak akan pernah melakukan pembaruan komposer langsung di server, apalagi di live shop.
tecjam

0

Satu dapat memutakhirkan magento 2 menggunakan dua metode dasar, satu dari panel admin dan lainnya menggunakan komposer.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.