Magento 2: Khi nào tôi nên chạy lệnh nào?


20

Tôi đã làm việc với Magento 2 được 2 tháng rồi. Tôi nhận ra rằng tôi đang sử dụng bin/magento setup:upgradequá nhiều. Tôi nghĩ rằng tôi không biết khi nào tôi phải chạy lệnh đó.

Dưới đây là các tình huống mà tôi chạy lệnh đã nói ở trên.

  • Khi tôi tạo Mô-đun mới,
  • Khi tôi thêm một cái gì đó vào thư mục Setup,
  • Khi tôi chỉnh sửa etc/module.xml,
  • Khi tôi chỉnh sửa etc/di.xml,
  • Khi tôi chỉnh sửa etc/webapi.xml,
  • Khi tôi chỉnh sửa etc/adminhtml/system.xml

Câu hỏi: Trong tình huống nào là hoàn toàn cần thiết để chạy bin/magento setup:upgradelệnh?

( Lý do tôi hỏi là phải mất một thời gian để hoàn thành lệnh đó. Tôi tin rằng nó thực sự có thể cải thiện năng suất nếu tôi ngừng sử dụng nó một cách không cần thiết. )

Câu trả lời:


42

Đọc thêm tại: Blog Mageprince

Bạn chỉ cần chạy setup:upgradelệnh

1. Khi bạn thực hiện các thay đổi trong Tập lệnh thiết lập (InstallData, InstallSchema,
Nâng cấpData, Nâng cấp, ...)

2. Nếu bạn cài đặt Magento lần đầu tiên.

3. Tại thời điểm cài đặt mô-đun mới

4. Sau khi nâng cấp phiên bản magento.

setup:upgradeLệnh sẽ làm gì

1) Kiểm tra phiên bản mô-đun trong setup_modulebảng

2) Nếu phiên bản không có sẵn hoặc phiên bản mới được thêm vào module.xml, Nó sẽ chạy tập lệnh thiết lập và thêm số phiên bản mới nhất trong bảng

Nếu bạn đã thực hiện các thay đổi trong các tệp HTML, CSS, JS, ... bạn cần xóa các tệp đã thay đổi cụ thể khỏi pub/staticthư mục hoặc chạy lệnh này

Thiết lập php bin / magento: static-content: triển khai

Biểu mẫu ngắn: php bin / magento s: s: d

Nếu bạn đã thực hiện các thay đổi như thêm phụ thuộc mới vào __construct () hoặc thay đổi trongdi.xml , bạn cần xóa các tệp đã thay đổi khỏi var/generationthư mục hoặc chạy lệnh này

Thiết lập php bin / magento: di: biên dịch

Mẫu ngắn: php bin / magento s: d: c

Nếu bạn đã thay đổi cấu hình quản trị, bố cục xml, thành phần ui, phtml, ... bạn chỉ cần xóa hoặc xóa bộ đệm

Bộ nhớ cache php / magento: tuôn ra

Mẫu ngắn: php bin / magento c: f


3

1.Khi tôi tạo Mô-đun mới:

2.Khi tôi thêm một cái gì đó vào thư mục Setup

3.Khi tôi chỉnh sửa vv / module.xml

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

4.Khi tôi chỉnh sửa vv / module.xml,

5. Khi tôi chỉnh sửa vv / di.xml,

6.Khi tôi chỉnh sửa vv / webapi.xml,

7. Khi tôi chỉnh sửa etc / adminhtml / system.xml cho xml, thay đổi bộ đệm cache là quá đủ:

php bin/magento cache:flush

thay đổi css và js: - xóa bộ đệm và php bin/magento setup:static-content:deploy


Theo tôi hiểu, setup:upgradecó thể được thực hiện như là một thay thế cho module:enable.
Joshua Lũ

Có bất kỳ kịch bản có sẵn kết hợp các lệnh này trong 1?
snh_nl

2

Nếu bạn làm việc với chế độ nhà phát triển, bạn không cần phải compilsửa đổi xml, bạn chỉ có thể thực hiện một setup:upgrade.

Và đối với những người khác sửa đổi như css, phtml, js, chỉ flush cache, bạn không cần phải triển khai nội dung tĩnh .


Không, chúng tôi không cần phải chạy setup:upgradeđể sửa đổi xml. Để biết thêm chi tiết tham khảo câu trả lời trên :)
Hoàng tử Patel

1

Đơn giản chỉ cần chạy thiết lập bin / magento: nâng cấp bất cứ khi nào bạn sửa đổi trên cơ sở dữ liệu.

Chẳng hạn, nếu bạn đang tạo thuộc tính (theo chương trình), mô-đun mới, nâng cấp phiên bản, v.v.

Vì vậy, quy tắc cơ bản cần ghi nhớ là, nếu bạn biết mã của mình sẽ thực hiện sửa đổi trên cơ sở dữ liệu, sau đó chạy lệnh setup: nâng cấp.


php bin/magento setup:upgradelàm cho thiết lập CRON JOB lỗi thời? Tôi bối rối bởi vì nó được ghi lại ở đây như là một cronjob để chạy everye phút devdocs.magento.com/guides/v2.3/comp-mgr/module-man/...
snh_nl

1

Tôi đã tạo một tệp bash có thể tự động hóa quy trình:

trong thư mục magento của bạn, gõ 'vi magento_bash' sao chép và dán mã bên dưới. lưu tập tin bằng cách thoát và: wq và nhập hy vọng điều này sẽ giúp. Lưu ý: tệp dưới đây chỉ mất một lệnh tại một thời điểm.

#!/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 đằng sau lệnh ssd?
snh_nl

0

Khi bạn đang triển khai mã của mình bằng tay. Tất cả các phương pháp được đề xuất ở trên là đủ tốt để tiết kiệm thời gian.

Nếu bạn đã tự động triển khai thông qua Jenkins hoặc một số công cụ khác, bạn nên chạy tất cả các lệnh vì công cụ không biết bạn đã làm gì và tập tin nào đã được thay đổi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.