Magento 2: Hangi komutları ne zaman çalıştırmalıyım?


20

Birlikte çalışıyoruz Magento 2 şimdi 2 aydır. bin/magento setup:upgradeÇok fazla kullandığımı fark ettim . Ben ne zaman bilmiyorum düşünmek zorunda olduğunu komutunu çalıştırın.

Yukarıda belirtilen komutu çalıştırdığım durumlar.

  • Yeni bir Modül oluşturduğumda,
  • Kurulum dizinine bir şey eklediğimde,
  • Düzenlediğimde etc/module.xml,
  • Düzenlediğimde etc/di.xml,
  • Düzenlediğimde etc/webapi.xml,
  • Düzenlediğimde etc/adminhtml/system.xml

Soru: Hangi durumlarda bin/magento setup:upgradekomut çalıştırmak kesinlikle gereklidir ?

( Sormamın nedeni, bu komutu bitirmek biraz zaman alıyor. Gereksiz kullanmayı bıraktığımda verimliliği gerçekten artırabileceğine inanıyorum. )

Yanıtlar:


43

Daha Fazla Bilgi İçin: Mageprince Blogu

Yalnızca setup:upgradekomutu çalıştırmanız gerekir

1. Kurulum komut dosyasında değişiklik yaptığınızda (InstallData, InstallSchema,
UpgradeData, UpgradeSchema, ...)

2. Magento'yu ilk kez kurarsanız.

3. Yeni modül kurulumu sırasında

4. Magento sürümünü yükselttikten sonra.

setup:upgradeKomut ne yapacak

1)setup_module Tablodaki modül sürümünü kontrol edin

2) Sürüm mevcut değilse veya module.xml dosyasına yeni sürüm eklendiyse, kurulum komut dosyasını çalıştırır ve tabloya en son sürüm numarasını ekler

HTML, CSS, JS, ... dosyalarında değişiklik yaptıysanız , değiştirilen belirli dosyaları pub/staticklasörden silmeniz veya bu komutu çalıştırmanız gerekir

php bin / magento kurulumu: statik içerik: dağıtma

Kısa Form: php bin / magento s: s: d

__Construct () öğesine yeni bağımlılık ekleme veya içindekidi.xml değişiklikler gibi değişiklikler yaptıysanız , değiştirilen dosyaları var/generationklasörden silmeniz veya bu komutu çalıştırmanız gerekir

php bin / magento kurulumu: di: derleme

Kısa Form: php bin / magento s: d: c

Yönetici yapılandırmasında, düzen xml, ui bileşeni, phtml, ... dosyalarında değişiklik yaptıysanız, yalnızca önbelleği temizlemeniz veya temizlemeniz gerekir

php bin / magento önbellek: floş

Kısa Form: php bin / magento c: f


3

1.Yeni bir Modül oluşturduğumda:

Kurulum dizinine bir şey eklediğimde

3. etc / module.xml dosyasını düzenlediğimde

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

4. etc / module.xml dosyasını düzenlediğimde,

5. etc / di.xml dosyasını düzenlediğimde,

6. etc / webapi.xml dosyasını düzenlediğimde,

7. xml değişiklikleri için etc / adminhtml / system.xml dosyasını düzenlediğimde önbellek boşluğu fazlasıyla yeterli:

php bin/magento cache:flush

css ve js değişiklikleri: - önbelleği temizle ve php bin/magento setup:static-content:deploy


Anladığım kadarıyla, setup:upgradealternatif olarak idam edilebilir module:enable.
Joshua Flood

Bu komutları 1'de birleştiren komut dosyaları var mı?
snh_nl

2

Geliştirici moduyla çalışıyorsanız, compildeğişiklik yaparken e yapmanız gerekmez xml, yalnızca a setup:upgrade.

Ve diğerleri değişiklikler için css, phtml, js, sadece flush cache, sen gerekmez statik içeriği dağıtmak .


Hayır, setup:upgradexml değişikliği için çalıştırmamıza gerek yok . Daha fazla ayrıntı için üst cevaba bakınız :)
Prince Patel

1

Bin / magento kurulumunu çalıştırmanız yeterlidir: veritabanında her değişiklik yaptığınızda yükseltin .

Örneğin, nitelikler (programlı olarak), yeni modüller, sürüm yükseltmeleri vb.

Bu yüzden akılda tutulması gereken temel kural, kodunuzun veritabanında değişiklikler yapacağını biliyorsanız, setup: upgrade komutunu çalıştırın.


Does php bin/magento setup:upgradekurulum CRON İŞ gereksiz hale gelir? Kafam karıştı çünkü burada her dakika çalıştırmak için bir cronjob olarak oturum açıldı devdocs.magento.com/guides/v2.3/comp-mgr/module-man/…
snh_nl

1

Süreci otomatikleştirebilecek bir bash dosyası oluşturdum:

magento klasörünüze 'vi magento_bash' yazın ve aşağıdaki kodu kopyalayıp yapıştırın. kaçan dosyayı kaydedin ve: wq ve bu umut yardımcı girin. Not: Aşağıdaki dosya bir kerede yalnızca bir komut alır.

#!/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

en_AU en_US ssd komutunun arkasında mı?
snh_nl

0

Kodunuzu manuel olarak dağıtırken. Yukarıda önerilen tüm yöntemler zamandan tasarruf etmek için yeterince iyidir.

Jenkins veya başka araçlar aracılığıyla otomatik konuşlandırmanız varsa, araç ne yaptığınızı ve hangi dosyanın değiştirildiğini bilmediğinden tüm komutları çalıştırmalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.