Magento 2: Kapan saya harus menjalankan perintah yang mana?

20

Saya telah bekerja dengan Magento 2 selama 2 bulan sekarang. Saya menyadari bahwa saya menggunakan bin/magento setup:upgradeterlalu banyak. Saya pikir saya tidak tahu kapan saya harus menjalankan perintah itu.

Berikut adalah situasi di mana saya menjalankan perintah yang disebutkan di atas.

  • Ketika saya membuat Modul baru,
  • Ketika saya menambahkan sesuatu ke direktori Setup,
  • Ketika saya mengedit etc/module.xml,
  • Ketika saya mengedit etc/di.xml,
  • Ketika saya mengedit etc/webapi.xml,
  • Ketika saya mengedit etc/adminhtml/system.xml

Pertanyaan: Dalam situasi apa mutlak diperlukan untuk menjalankan bin/magento setup:upgradeperintah?

( Alasan saya bertanya adalah karena butuh beberapa waktu untuk menyelesaikan perintah itu. Saya percaya itu benar-benar dapat meningkatkan produktivitas jika saya berhenti menggunakannya secara tidak perlu. )

Bunyamin Inan
sumber

Jawaban:

42

Baca Lebih Lanjut Di: Mageprince Blog

Anda hanya perlu menjalankan setup:upgradeperintah

1. Ketika Anda membuat perubahan dalam skrip Setup (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Jika Anda menginstal Magento pertama kali.

3. Pada saat pemasangan modul baru

4. Setelah meningkatkan versi magento.

Apa yang akan dilakukan setup:upgradeperintah

1) Periksa versi modul dalam setup_moduletabel

2) Jika versi tidak tersedia atau versi baru ditambahkan dalam module.xml, Ini akan menjalankan skrip pengaturan dan menambahkan nomor versi terbaru dalam tabel

Jika Anda membuat perubahan pada file HTML, CSS, JS, ... Anda perlu menghapus file yang diubah tertentu dari pub/staticfolder atau menjalankan perintah ini

setup php bin / magento: static-content: deploy

Short Form: php bin / Magento s: s: d

Jika Anda membuat perubahan seperti menambahkan ketergantungan baru di __construct () atau perubahandi.xml , Anda perlu menghapus file yang diubah dari var/generationfolder atau menjalankan perintah ini

setup php bin / magento: di: compile

Formulir Singkat: php bin / magento s: d: c

Jika Anda membuat perubahan di konfigurasi admin, tata letak xml, komponen ui, phtml, ... file yang Anda butuhkan hanya tembolok bersih atau flush

cache bin / magento php: flush

Formulir Singkat: php bin / magento c: f

Pangeran Patel
sumber
3

1.Ketika saya membuat Modul baru:

2.Ketika saya menambahkan sesuatu ke direktori Setup

3.Ketika saya mengedit etc / module.xml

php bin/magento module:enable
php bin/magento setup:upgrade

4.Ketika saya mengedit etc / module.xml,

5.Ketika saya mengedit etc / di.xml,

6.Ketika saya mengedit etc / webapi.xml,

7.Ketika saya mengedit etc / adminhtml / system.xml untuk perubahan flush cache xml lebih dari cukup:

php bin/magento cache:flush

perubahan css dan js: - flush cache and php bin/magento setup:static-content:deploy

Pramod Kharade
sumber
Sejauh yang saya mengerti, setup:upgradedapat dieksekusi sebagai alternatif module:enable.
Joshua Flood
Apakah ada skrip yang tersedia yang menggabungkan perintah-perintah ini dalam 1?
snh_nl
2

Jika Anda bekerja dengan mode pengembang Anda tidak perlu compile saat Anda memodifikasi xml, Anda hanya dapat membuat a setup:upgrade.

Dan untuk orang lain modifikasi sebagai css, phtml, js, hanya flush cache, Anda tidak perlu menyebarkan konten statis .

Marialena
sumber
Tidak, Kami tidak perlu menjalankan setup:upgradeuntuk modifikasi xml. Untuk lebih jelasnya lihat jawaban atas :)
Pangeran Patel
1

Cukup perlu menjalankan pengaturan bin / magento: tingkatkan setiap kali Anda melakukan modifikasi pada database.

Misalnya jika Anda membuat atribut (secara program), modul baru, peningkatan versi, dll.

Jadi aturan dasar yang perlu diingat adalah, jika Anda tahu kode Anda akan melakukan modifikasi pada database, kemudian jalankan setup: perintah upgrade.

Sukeshini
sumber
Apakah php bin/magento setup:upgrademembuat pengaturan CRON JOB menjadi usang? Saya bingung karena login di sini sebagai cronjob untuk menjalankan setiap menit devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl
1

Saya telah membuat file bash yang dapat mengotomatiskan proses:

di folder magento Anda, ketik 'vi magento_bash' salin dan tempel kode di bawah ini. simpan file dengan melarikan diri dan: wq dan masukkan harap ini membantu. Catatan: file di bawah ini hanya membutuhkan satu perintah pada satu waktu.

#!/bin/sh

mainmenu()
{

echo 'Press 1 if you have created a new module'

echo 'Press 2 if you have changed HTML, CSS, JS..'

echo 'Press 3 if you have made changes like add new dependency in __construct() or changes in di.xml'

echo 'Press 4 if you have made changes like admin configuration, layout xml, ui component, phtml'

read -n 1 -p "Input Selection:" mainmenuinput

if [ "$mainmenuinput" = "1" ];
then
    cd src
    php bin/magento setup:upgrade
elif [ "$mainmenuinput" = "2" ];
then
    cd src
    php bin/magento s:s:d en_AU en_US
elif [ "$mainmenuinput" = "3" ];
then
    cd src
    php bin/magento setup:di:compile
elif [ "$mainmenuinput" = "4" ];
then
    cd src
    php bin/magento cache:flush
else
    echo 'You have selected an invalid selection'
fi
}

mainmenu
Komal Bandi
sumber
en_AU en_US di belakang perintah ssd?
snh_nl
0

Ketika Anda menggunakan kode Anda secara manual. Semua metode yang disarankan di atas cukup baik untuk menghemat waktu.

Jika Anda memiliki penyebaran otomatis melalui Jenkins atau beberapa alat lain, Anda harus menjalankan semua perintah karena alat tidak tahu apa yang Anda lakukan dan file mana yang diubah.

Kalyan Chakravarthi V
sumber