Kapan tepatnya menggunakan setup php bin / magento: upgrade

10

Ada banyak situasi di mana saya mengubah beberapa file dalam modul saya dalam mode pengembang tetapi perubahan tidak terjadi di frontend sampai saya menjalankan php bin/magento setup:upgrade

Hanya ingin tahu kapan kita harus menjalankan setup:upgradeperintah dan apa tujuannya di Magento 2?

Ini sangat aneh bagi saya, karena setiap kali saya melakukan beberapa perubahan, mereka tidak akan terlihat sampai setelah saya menjalankan pengaturan: perintah upgrade. Bahkan jika saya menghapus var / cache, masih tidak terlihat. Adakah yang tahu alasan untuk ini?

Michel Gokan
sumber

Jawaban:

17

Jika Anda mengaktifkan satu atau lebih modul, maka Anda harus menjalankan magento setup:upgradeuntuk memperbarui skema database.

Secara default, magento setup:upgrademenghapus kode yang dikompilasi dan cache. Biasanya, Anda menggunakan magento setup:upgradeuntuk memperbarui komponen dan setiap komponen dapat memerlukan kelas kompilasi yang berbeda.

magento setup:upgrade --keep-generated

--keep-generatedOpsi opsional harus digunakan hanya dalam keadaan terbatas oleh integrator sistem yang berpengalaman. --keep-generatedtidak boleh digunakan dalam lingkungan pengembangan.

Penggunaan parameter opsional yang tidak tepat ini dapat menyebabkan kesalahan selama eksekusi kode.

UPDATE (07/10/17)

Seperti yang diminta oleh pembuat topik:

Tapi ini sangat aneh bagi saya, karena setiap kali saya melakukan beberapa perubahan, mereka tidak akan terlihat sampai setelah saya menjalankan pengaturan: perintah upgrade. Bahkan jika saya menghapus var / cache, masih tidak terlihat. Apakah Anda tahu alasan untuk ini?

var/cachedi Magento 2 tidak cukup untuk membuat perubahan terlihat seperti Magento 1. Di Magento 2, Anda harus menghapus var/generation(dan var/dijika Anda mengkompilasi kode) setelah Anda membuat perubahan di dalam kode Anda, terutama setiap kali Anda mengubah sesuatu di dalam konstruktor.

Anda juga perlu menghapus var/view_preprocessedjika Anda mengubah sesuatu di dalam file template Anda (.phtml)

Sisanya akan pergi ke var/cachedanvar/full_page_cache

Semoga ini membantu.

Toan Nguyen
sumber
Pak, terima kasih atas jawaban Anda. Tapi ini sangat aneh bagi saya, karena setiap kali saya melakukan beberapa perubahan, mereka tidak akan terlihat sampai setelah saya menjalankan pengaturan: perintah upgrade. Bahkan jika saya menghapus var / cache, masih tidak terlihat. Apakah Anda tahu alasan untuk ini?
Michel Gokan
Mungkin Anda tidak membersihkan cukup direktori. Mungkin setup:upgradeperintahnya membersihkan mereka untuk Anda. Lihatlah halaman ini untuk referensi. Saya mengasumsikan modul Anda diaktifkan; jika tidak, itu juga menyebabkan masalah.
Steve Johnson
@MichelGokan saya memperbarui jawabannya.
Toan Nguyen
Apakah kita perlu menjalankan pengaturan: memutakhirkan setelah menonaktifkan ekstensi?
Webninja
@ Webmaster Ya, benar.
Toan Nguyen
0

Saat Anda mengaktifkan modul, ubah versi modul yang perlu Anda jalankan magento setup:upgradeuntuk memperbarui skema basis data.

Dalam kasus lain ketika Anda menambahkan data baru di konstruktor kelas Anda, Anda perlu menjalankan magento setup:upgradekarena menghapus folder var / generation. Untuk memahaminya, hapus izin tulis dan baca untuk varfolder dan jalankan perintahmagento setup:upgrade

Anda akan mendapatkan pesan kesalahan seperti ini yang
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. berarti bahwa perintah ini sedang membersihkan folder var / generation. Jika Anda ingin mendapatkan perubahan tanpa menjalankan magento setup:upgradeperintah, Anda harus menghapus ketiga folder ini

rm -rf var/cache/* var/page_cache/* var/generation/*

Ledian Hymetllari
sumber