ম্যাজেন্টো 2 রিইনডেক্সের কোনও সত্তা নেই


14

আমি সফলভাবে ক্যাটালগটি Magento 1.9.2.3 থেকে Magento 2.0.2 এ স্থানান্তরিত করেছি। স্থানান্তরের পরে, কমান্ডটি ব্যবহার করে আমি পুনর্নির্মাণ করেছি php bin/magento indexer:reindex

সকল সফলভাবে ইনডেক্স ছাড়া reindexed হয়, catalog_category_productএবং catalog_product_categoryরিটার্নিং No such entity.শেল ও বিজ্ঞপ্তিতে Reindex Requiredঅ্যাডমিন হবে। আমি পরীক্ষা করেছি var/log/কিন্তু ত্রুটি নেই।

ফলস্বরূপ, পণ্যগুলি ব্যাকএন্ডে বিভাগগুলিতে যুক্ত করা হয় তবে বিভাগগুলি সম্মুখভাগে খালি দেখায়।

কী কারণে এই সমস্যা হতে পারে? আমি কীভাবে ডিবাগ করতে পারি?


উত্তর:


7

রাফেল ছাড়াও:

আমি এই কোডটি ডিবাগ উদ্দেশ্যে (ব্যর্থ xdebug বা পুরাতন ডাম্প দ্বারা) ব্যতিক্রম কনস্ট্রাক্টর পরিবর্তন করে ডিবাগ করেছি। আপাতত আপাতত নির্মাণের পরিবর্তন করুন (ফাইলটি হ'ল \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(স্টোর গ্রুপটি প্রাসঙ্গিক টেবিলটিতে বিদ্যমান নেই)।

ত্রুটিযুক্ত স্টোর লাইনগুলি সরানো হয়েছে এবং তখন থেকেই ত্রুটি চলে গেছে।

তবে, মনে রাখবেন যে এটি অন্য কোনও টেবিলে / অন্য কারণেও হতে পারে। উদাহরণস্বরূপ ওয়েবসাইট, নিজেই সঞ্চয় করুন বা এক্ষেত্রে গোষ্ঠী সঞ্চয় করুন। সুতরাং এটি সর্বদা আপনার নিজের সম্পাদন করতে হবে একটি সামান্য অনুসন্ধান search

এছাড়াও জানতে পেরেছি যে এই স্টোরগুলিতে প্রচুর উল্লেখ রয়েছে এবং সেগুলি ডিবিতে ম্যানুয়ালি সরানো হয়েছে। এটি একটি ক্লান্তিকর কাজ হতে পারে তবে এটি সমস্যার সমাধান করবে।

এবং আপনার হ্যাকগুলি সরাতে ভুলবেন না।


আপনি xdebug পরিবর্তে ব্যবহার করবেন না কেন?
লুক 13

@TimVroom আমিও একই error.Please সাহায্যের আমার আছে magento.stackexchange.com/q/236187/24878
akgola

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

এই শ্রেণিটি ম্যাজেন্টোর একটি কাস্টম ব্যতিক্রম শ্রেণি এবং এটি ম্যাজেন্টো 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

আমার কাছে এটিই আপনার ডিবাগিং শুরু করা উচিত কারণ এই ক্রিয়া শ্রেণীর ক্লাসগুলি হ'ল সরাসরি ক্লাস যা সেই দুটি সূচককে পুনরায় সূচনা করে।

আমি সত্যিই আশা করি এটি আপনার সমস্যা খুঁজে পেতে আপনাকে সহায়তা করবে।


হাই @ রাফেল, মাইগ্রেশনের পরে গ্রাহক তৈরির জন্য আমারও একই সমস্যা রয়েছে lease দয়া করে
akgola

0

এটি সমস্ত চেষ্টা করার পরে আমার জন্য কাজ করেছে।

ধরে নিচ্ছি আপনার সাইটটি রয়েছে Developer Mode, আপনি এটিকে পরিবর্তন করতে পারেন Production Modeএবং সাফ / ফ্লাশ ক্যাশে এবং তারপরে আবার স্যুইচ করতে পারেন Developer Mode

সামনের প্রান্তে আমার এই সমস্যাটি ছিল, কারণ আমি সম্প্রতি একটি সার্ভার থেকে অন্য সার্ভারে ডাটাবেস সরিয়েছি। আমি এইভাবে সমাধান করতে পেরেছি।

এই সাহায্য কিছু আশা করি।



0

এই ত্রুটিটি, আমার ক্ষেত্রে, বহু-দোকান, মাল্টি-ডোমেন সেটআপের জন্য। ম্যাজেন্টো স্টোর কোডগুলি ছাঁটাই করে। আপনি যদি স্টোর কোডগুলিতে ডোমেনগুলি ম্যাপিং করে থাকেন তবে নিশ্চিত হয়ে নিন যে স্টোর কোডটি সূচীকরণে বর্ণিত রাউটিংয়ের সাথে মেলে। "স্টোর" > " সমস্ত স্টোর " এর অধীনে প্রশাসকের চেক করুন । আপনার ওয়েবসাইট, স্টোর এবং স্টোর ভিউ স্টোর কোডগুলি পরীক্ষা করুন।

একবার আমি বুঝতে পারলাম যে ম্যাগেন্টো স্টোর কোডটি আমি প্রবেশ করিয়ে দিয়েছি এবং ম্যাপিংয়ে একই সামঞ্জস্য করেছি এবং সবকিছু আবার কাজ শুরু করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.