Khi chính xác sử dụng thiết lập php bin / magento: nâng cấp


10

Có rất nhiều tình huống trong đó tôi thay đổi một số tệp trong mô-đun của mình ở chế độ nhà phát triển nhưng những thay đổi không diễn ra ở lối vào cho đến khi tôi chạy php bin/magento setup:upgrade

Chỉ muốn biết khi nào chúng ta nên chạy setup:upgradelệnh và mục đích của nó trong Magento 2 là gì?

Nó thật lạ đối với tôi, bởi vì mỗi khi tôi thực hiện một số thay đổi, chúng sẽ không hiển thị cho đến khi tôi chạy lệnh setup: nâng cấp. Ngay cả khi tôi xóa var / cache, nó vẫn không hiển thị. Bất cứ ai biết lý do cho điều này?

Câu trả lời:


17

Nếu bạn đã bật một hoặc nhiều mô-đun, thì bạn sẽ cần phải chạy magento setup:upgradeđể cập nhật lược đồ cơ sở dữ liệu.

Theo mặc định, magento setup:upgradexóa mã biên dịch và bộ đệm. Thông thường, bạn sử dụng magento setup:upgradeđể cập nhật các thành phần và mỗi thành phần có thể yêu cầu các lớp được biên dịch khác nhau.

magento setup:upgrade --keep-generated

Tùy chọn tùy --keep-generatedchọn chỉ nên được sử dụng trong các trường hợp giới hạn bởi các nhà tích hợp hệ thống có kinh nghiệm. --keep-generatedkhông bao giờ nên được sử dụng trong môi trường phát triển

Việc sử dụng không đúng tham số tùy chọn này có thể gây ra lỗi trong quá trình thực thi mã.

CẬP NHẬT (07/10/17)

Như người tạo chủ đề đã hỏi tôi:

Nhưng nó thật lạ đối với tôi, bởi vì mỗi khi tôi thực hiện một số thay đổi, chúng sẽ không hiển thị cho đến khi tôi chạy lệnh setup: nâng cấp. Ngay cả khi tôi xóa var / cache, nó vẫn không hiển thị. Bạn có biết lý do nào cho việc này không?

var/cachetrong Magento 2 không đủ để thay đổi hiển thị như Magento 1. Trong Magento 2, bạn sẽ cần xóa var/generation(và var/dinếu bạn đã biên dịch mã) sau khi bạn thực hiện thay đổi bên trong mã của mình, đặc biệt là bất cứ khi nào bạn thay đổi thứ gì đó bên trong hàm tạo.

Bạn cũng sẽ cần phải xóa var/view_preprocessednếu bạn thay đổi một cái gì đó bên trong tệp mẫu của bạn (.phtml)

Phần còn lại sẽ đi đến var/cachevar/full_page_cache

Hi vọng điêu nay co ich.


Thưa ngài, cảm ơn câu trả lời của bạn. Nhưng nó thật lạ đối với tôi, bởi vì mỗi khi tôi thực hiện một số thay đổi, chúng sẽ không hiển thị cho đến khi tôi chạy lệnh setup: nâng cấp. Ngay cả khi tôi xóa var / cache, nó vẫn không hiển thị. Bạn có biết lý do nào cho việc này không?
Michel Gokan

Có thể bạn không xóa đủ thư mục. Có thể setup:upgradelệnh đang xóa chúng cho bạn. Nhìn vào trang này để tham khảo. Tôi giả sử mô-đun của bạn được kích hoạt; nếu không, điều đó cũng gây ra vấn đề.
Steve Johnson

@MichelGokan Tôi cập nhật câu trả lời.
Toàn Nguyễn

Chúng ta có cần chạy thiết lập: nâng cấp sau khi tắt tiện ích mở rộng không?
Webninja

@Webninja Vâng, chúng tôi làm.
Toàn Nguyễn

0

Khi bạn bật mô-đun, thay đổi phiên bản mô-đun, bạn sẽ cần chạy magento setup:upgradeđể cập nhật lược đồ cơ sở dữ liệu.

Trong các trường hợp khác khi bạn thêm dữ liệu mới trong các hàm tạo của lớp, bạn cần chạy magento setup:upgradevì nó xóa thư mục var / Generation. Để hiểu nó, hãy xóa quyền ghi và đọc cho varthư mục và chạy lệnhmagento setup:upgrade

Bạn sẽ nhận được một thông báo lỗi như thế này
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line. có nghĩa là lệnh này đang xóa thư mục var / Generation. Nếu bạn muốn nhận các thay đổi của mình mà không thực hiện magento setup:upgradelệnh, bạn cần xóa ba thư mục này

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

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.