Magento 2 reindex रिटर्न कोई ऐसी इकाई नहीं है


14

मैंने सफलतापूर्वक Magento 1.9.2.3 से Magento 2.0.2 तक कैटलॉग को सफलतापूर्वक स्थानांतरित कर दिया है। माइग्रेशन के बाद, मैंने कमांड का उपयोग करके रीइन्डेक्स किया php bin/magento indexer:reindex

सभी को सफलतापूर्वक अनुक्रमित किया गया है, सिवाय सूचकांक catalog_category_productऔर catalog_product_category, No such entity.शेल में वापसी और Reindex Requiredव्यवस्थापक में सूचना के । मैंने जाँच की है var/log/लेकिन कोई त्रुटि नहीं है।

नतीजतन, उत्पादों को बैकएंड में श्रेणियों में जोड़ा जाता है, लेकिन श्रेणियां दृश्यपटल पर खाली दिखाई देती हैं।

इस समस्या का कारण क्या हो सकता है? मैं डिबग कैसे कर सकता हूं?


जवाबों:


7

राफेल के अलावा:

मैंने इस कोड को डिबग उद्देश्यों के लिए अपवाद निर्माणकर्ता को बदलने के साथ डीबग किया (या तो xebebug या पुराने डंप द्वारा)। अब (फ़ाइल है \lib\internal\Magento\Framework\Exception\NoSuchEntityException.php) अपवाद के निर्माण को बदल दें

$trace = debug_backtrace();
var_dump($trace[1]['class'] . '::' . $trace[1]['function'] . '('.$trace[1]['line'] .')';
die();

उसके बाद एक स्टैक पर जाएं और दिए गए तर्कों की जांच करें (आर्ग्स डीबग बैकट्रेस में भी उपलब्ध हैं, लेकिन मैगेंटो ऑब्जेक्ट्स को डंप करना वास्तव में ब्राउज़र के अनुकूल नहीं है)।

इस निष्कर्ष पर पहुंचे, कि यह storeGroupRepositoryसमूह आईडी नहीं ढूंढ सका था । स्टोर की मेज में घुस गए और स्टोर की मेज में कुछ पंक्तियाँ देखीं जो तालिका store_groupमें नहीं थीं store_group(स्टोर समूह प्रासंगिक तालिका में मौजूद नहीं है)।

दोषपूर्ण स्टोर लाइनों को हटा दिया गया और त्रुटि तब से चली गई है।

लेकिन, ध्यान रखें कि यह एक अलग तालिका / अन्य कारण में भी हो सकता है। उदाहरण के लिए वेबसाइट, इस मामले में खुद को स्टोर या स्टोर करें। इसलिए यह हमेशा एक छोटी सी खोज है जिसे आपको स्वयं करना है।

यह भी पता चला कि इन दुकानों के लिए बहुत सारे संदर्भ थे और उन्हें डीबी में मैन्युअल रूप से हटा दिया। यह एक थकाऊ काम हो सकता है लेकिन यह समस्या को हल करेगा।

और अपने हैक्स को हटाने के लिए मत भूलना।


आप इसके बजाय xdebug का उपयोग क्यों नहीं करते?
ल्यूक

@TimVroom में भी मेरी यही त्रुटि है। कृपया मेरी मदद करें magento.stackexchange.com/q/236187/24878
अंकोला

11

यह सुनिश्चित करने के लिए कि यह जोड़ने में बहुत देर हो चुकी है, लेकिन जब मेरे पास यह था तो कुछ इकाई आईडी के कारण ऐसा प्रतीत होता है जिसे 0 पर सेट करने की आवश्यकता है।

इस स्क्रिप्ट ने मेरे लिए काम किया:

SET FOREIGN_KEY_CHECKS=0;
UPDATE `store` SET store_id = 0 WHERE code='admin';
UPDATE `store_group` SET group_id = 0 WHERE name='Default';
UPDATE `store_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

आशा करता हूँ की ये काम करेगा।


इससे मुझे बहुत मदद मिली, साझा करने के लिए धन्यवाद!
फावो

इसने मेरे लिए भी काम किया :)
ओवेन

3

ठीक है तो No such entity.त्रुटि संदेश आता है \lib\internal\Magento\Framework\Exception\NoSuchEntityException.php

यह वर्ग Magento का एक कस्टम अपवाद वर्ग है और इसका उपयोग Magento 2 में बहुत किया जाता है।

जब भी आप जैसे कोड देखते हैं:

catch (NoSuchEntityException $e)

या

throw NoSuchEntityException;

इस वर्ग का उपयोग किया जा रहा है।

आपके मामले में समस्या यह है कि यह पता लगाना कठिन है कि उस अपवाद को कहां से फेंका जा रहा है।

तो इसे थोड़ा संकीर्ण करने के लिए, आप अपने अनुक्रमणिका से संबंधित दो वर्गों को डीबग करना शुरू कर सकते हैं जो विफल हो जाते हैं:

  • Magento\Catalog\Model\Indexer\Category\Product=> कैटलॉग_श्रेणी_प्रक्रम सूचकांक
  • Magento\Catalog\Model\Indexer\Product\Category=> कैटलॉग_प्रोडक्ट_ श्रेणीगत सूचकांक

सौभाग्य से, दूसरा वाला पहले एक का विस्तार करता है इसलिए आपको एक शुरुआती बिंदु मिला है।

आपको यह ध्यान में रखना है कि इस अनुक्रमणिका वर्ग में से प्रत्येक रिंडेक्सिंग को संसाधित करने के लिए क्रिया पंक्तियों की कक्षाओं का उपयोग करता है:

  • Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
  • Magento\Catalog\Model\Indexer\Category\Product\Action\Rows

मेरे लिए वह जगह है जहाँ आपको डिबगिंग शुरू करनी चाहिए क्योंकि वे एक्शन रो क्लास हैं जो डायरेक्ट क्लास हैं जो उन दो इंडेक्सों को रिवाइंड कर रहे हैं।

मैं वास्तव में आशा करता हूं कि यह आपकी समस्या का पता लगाने में आपकी मदद करेगा।


हाय @ राफेल, मेरे पास प्रवास के बाद ग्राहक निर्माण के लिए समान मुद्दा है। कृपया
7kg पर अंकोला

0

इस कार्य को पूरा करने के लिए मेरे लिए काम किया जाता है।

मान लें कि आपकी साइट अंदर है Developer Mode, तो आप इसे बदल सकते हैं Production Modeऔर कैश को फ्लश कर सकते हैं और फिर वापस स्विच कर सकते हैं Developer Mode

मैं सामने के अंत में यह मुद्दा था, जैसा कि मैंने हाल ही में डेटाबेस को एक सर्वर से दूसरे में स्थानांतरित कर दिया है। मैं इस तरह से हल करने में कामयाब रहा हूं।

यह एक कुछ मदद करता है।



0

मेरे मामले में यह त्रुटि, बहु-स्टोर, बहु-डोमेन सेटअप के लिए थी। Magento स्टोर कोड्स को काट देता है। यदि आप कोड स्टोर करने के लिए डोमेन की मैपिंग कर रहे हैं, तो सुनिश्चित करें कि स्टोर कोड index.php में निर्दिष्ट रूटिंग से मेल खाता है (या आप जहां भी मैप करते हैं)। "स्टोर" > " सभी स्टोर " के अंतर्गत व्यवस्थापक जांच में । अपनी वेबसाइट, स्टोर और व्यू स्टोर कोड देखें।

एक बार जब मैंने महसूस किया कि मैगेंटो ने मेरे द्वारा दर्ज किए गए स्टोर कोड को काट दिया और मैपिंग में समान समायोजन किया और सब कुछ फिर से काम करना शुरू कर दिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.