Nâng cấp Magento 2.1.9 lên Magento 2.2.2 rất chậm


7

Chúng tôi đang cố gắng nâng cấp trang web Magento 2.1.9 lên Magento 2.2.2. Chúng tôi có hơn 130 nghìn sản phẩm và quá trình này dường như bị kẹt trong hơn 3 giờ,

Upgrading data..
Module 'Magento_Backend':
Module 'Magento_Catalog':

Tôi đã sử dụng xdebug để lập hồ sơ quá trình mất quá nhiều thời gian và rõ ràng vấn đề là:

if (version_compare($context->getVersion(), '2.2.2') < 0) {
    $this->upgradeWebsiteAttributes->upgrade($setup);
}

Có nhiều sản phẩm và nhiều thuộc tính quá trình mất nhiều thời gian. Thật ra nó vẫn bị kẹt ở đó nên đã 3 ngày rồi. Kích thước cơ sở dữ liệu là 47GB.


cơ sở dữ liệu không nén của bạn lớn như thế nào?
brentwpeterson

Chúng tôi đang thử phiên bản nhẹ của 5gb :)
Antonio Peesini

Bất kỳ giải pháp bạn tìm ra?
Narendra Vyas

chúng tôi đã chạy các truy vấn sql thay đổi db bằng tay. Khi magento chạy, việc nâng cấp sẽ nhanh hơn nhiều vì nó đã tìm đúng lược đồ rồi. Thay vào đó, việc nâng cấp dữ liệu đòi hỏi rất nhiều công việc vì nhiều giá trị đã được chuyển đổi từ tuần tự sang json_encode. để làm điều đó, chúng tôi đã tạo ra các lệnh cli tương tự để chạy trong đêm. ngoài ra, chúng tôi đã tạo một plugin json_encoder động, vì vậy nếu một giá trị chưa được tuần tự hóa, nó sẽ thực hiện nó một cách nhanh chóng.
Antonio Peesini

Câu trả lời:


1

Bước 1: Truy cập máy chủ của bạn thông qua SSH

Bạn cần kết nối máy chủ của mình thông qua SSH.

Bước 2: Điều hướng đến thư mục gốc Magento 2

Khi kết nối SSH của bạn được bật, bạn sẽ cần chuyển đến thư mục ứng dụng mục tiêu của mình. Trong thư mục ứng dụng đó, bạn sẽ tìm thấy thư mục public_html là thư mục gốc của Magento 2.

Bước 3: Nâng cấp lệnh

composer require magento/product-community-edition 2.2.2 --no-update

Sau đó thực hiện tất cả các lệnh này

 composer update
 rm -rf var/di var/generation
 php bin/magento setup:upgrade
 php bin/magento setup:di:compile
 php bin/magento cache:clean
 php bin/magento cache:flush
 php bin/magento indexer:reindex

0

Có vẻ như đây là sự cố đã biết với Magento: https://github.com/magento/magento2/issues/13553

Càng nhiều cửa hàng bạn sẽ có nhiều thời gian hơn. Chúng tôi đã không tìm thấy một cách giải quyết tốt cho điều này cho các cửa hàng của chúng tôi.


-2

Vui lòng kiểm tra cấu hình máy chủ của bạn và tăng giới hạn bộ nhớ trong php.ini và thời gian thực hiện. Sau đó, khởi động lại máy chủ của bạn. Hy vọng điều này sẽ giúp bạn.


Hãy đề cập đến những gì người ta phải kiểm tra trong cấu hình máy chủ.
inrsaurabh

-6

Hãy thử tắt khóa ngoại:

SET FOREIGN_KEY_CHECKS=0;

Chạy nâng cấp

SET FOREIGN_KEY_CHECKS=1;

Điều này sẽ tăng tốc độ nâng cấp rất nhiều. Xin lưu ý rằng việc vô hiệu hóa kiểm tra khóa ngoại có thể gây hại, vì vậy hãy thử trước trên môi trường kiểm tra và so sánh kết quả với cơ sở dữ liệu được nâng cấp bằng khóa ngoại.


Tại sao anh ta cần phải vô hiệu hóa kiểm tra chính với nâng cấp magento ??
MagenX

Magento có rất nhiều bảng kết nối. Vô hiệu hóa kiểm tra khóa ngoại sẽ tăng tốc độ chèn, nhưng Anh ta sẽ không nhận được bất kỳ kiểm tra lỗi nào về dữ liệu được chèn. Tôi đã làm điều này với một trang web để kiểm tra công cụ di chuyển cục bộ và nó đã tăng tốc độ nhập và tôi khuyên bạn nên kiểm tra và so sánh cơ sở dữ liệu được tạo vì phương pháp này không an toàn. Các downvote có thể đến từ các nhà phát triển nhìn thấy dòng đầu tiên và không đọc hoặc hiểu lý do đằng sau nó. Nhưng này, đó là internet!
Czettner Sándor 20/03/18

1
đi đến ổ đĩa gốc và gõ rm -rf *, nhưng xin lưu ý rằng điều này có thể gây hại, vì vậy hãy thử nó trên môi trường thử nghiệm trước ... có hợp lý không?
MagenX

Bạn có bất cứ đề nghị khác để tăng tốc đáng kể? Ngoài ra, vô hiệu hóa kiểm tra khóa ngoại không nhất thiết gây ra bất kỳ tác hại. Tôi cuối cùng đã không làm điều đó trong sản xuất, nhưng nó đã giúp rất nhiều địa phương để nhanh chóng kiểm tra xem việc di chuyển có hoạt động hay không.
Czettner Sándor 21/03/18
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.