J'ai réussi à migrer le catalogue de Magento 1.9.2.3 vers Magento 2.0.2. Après la migration, j'ai réindexé à l'aide de la commande php bin/magento indexer:reindex
.
Tout est réindexé avec succès, sauf les index catalog_category_product
et catalog_product_category
, le retour No such entity.
en shell et la notification Reindex Required
en admin. J'ai vérifié var/log/
mais aucune erreur.
Par conséquent, les produits sont ajoutés aux catégories dans le backend mais les catégories apparaissent vides sur le frontend.
Qu'est-ce qui pourrait causer ce problème? Comment puis-je déboguer?
magento2
reindex
magento-2.0
migration
Gerard de Visser
la source
la source
Réponses:
En plus de Raphael:
J'ai débogué ce code en modifiant le constructeur d'exceptions à des fins de débogage (soit par xdebug soit par d'anciennes sauvegardes). Modifiez la construction de l'exception pour l'instant (le fichier est
\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
)Ensuite, montez une pile et vérifiez les arguments donnés (les arguments sont également disponibles dans la trace de débogage, mais le vidage d'objets magento n'est pas vraiment convivial pour le navigateur).
Je suis arrivé à la conclusion que c'était dans le
storeGroupRepository
cas où il ne pouvait pas trouver l'identifiant du groupe. Plongé dans les tables du magasin et vu quelques lignes dans la table du magasin qui faisaient référence à unstore_group
qui n'était pas dans lastore_group
table (le groupe de magasins n'existe pas dans la table pertinente).Suppression des lignes de magasin défectueuses et l'erreur a disparu depuis.
Mais gardez à l'esprit que cela peut également être dans une autre table / autre raison. par exemple, site Web, magasin lui-même ou groupe de magasins dans ce cas. C'est donc toujours une petite recherche que vous devez effectuer vous-même.
A également découvert qu'il y avait beaucoup de références à ces magasins et les a également supprimées manuellement dans la base de données. Cela peut être un travail fastidieux mais cela résoudra le problème.
Et n'oubliez pas de supprimer vos hacks.
la source
Je ne sais pas si c'est trop tard pour l'ajouter, mais quand je l'ai eu, cela semblait provenir de certains identifiants d'entité qui devaient être définis sur 0.
Ce script a fonctionné pour moi:
J'espère que cela aide.
la source
Ok donc le
No such entity.
message d'erreur vient\lib\internal\Magento\Framework\Exception\NoSuchEntityException.php
.Cette classe est une classe d'exception personnalisée de Magento et elle est beaucoup utilisée dans Magento 2.
Chaque fois que vous voyez du code comme:
Ou
Cette classe est utilisée.
Le problème dans votre cas est qu'il est difficile de savoir d'où cette exception est levée.
Donc, pour affiner un peu, vous pouvez commencer à déboguer les deux classes liées à vos index qui échouent:
Magento\Catalog\Model\Indexer\Category\Product
=> index catalog_category_productMagento\Catalog\Model\Indexer\Product\Category
=> index catalogue_produit_catégorieHeureusement, le second prolonge le premier, vous avez donc un point de départ.
Vous devez garder à l'esprit que chacune de ces classes d'indexeur utilise des classes de lignes d'action pour traiter la réindexation:
Magento\Catalog\Model\Indexer\Product\Category\Action\Rows
Magento\Catalog\Model\Indexer\Category\Product\Action\Rows
Pour moi, c'est là que vous devriez commencer le débogage car ces classes de lignes d'action sont les classes directes qui réindexent ces deux index.
J'espère vraiment que cela vous aidera à trouver votre problème.
la source
Cela a fonctionné pour moi après avoir essayé tout.
En supposant que votre site se trouve dans
Developer Mode
, vous pouvez le modifierProduction Mode
et effacer / vider le cache, puis revenir àDeveloper Mode
.J'ai eu ce problème à l'avant, car j'ai récemment déplacé la base de données d'un serveur à un autre. J'ai réussi à résoudre de cette façon.
J'espère que cela aide quelqu'un.
la source
Fondamentalement, le même
Magento 2 - Site en mouvement - «Aucune entité de ce type»
cd /magento-root-path/var
rm -rf *
cd ../
php bin/magento setup:upgrade
rm -rf ./var/di
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
chown -R www-data
.la source
Cette erreur, dans mon cas, concernait une configuration multi-magasins et multi-domaines. Magento tronque les codes des magasins. Si vous mappez des domaines pour stocker des codes, assurez-vous que le code de magasin correspond au routage spécifié dans index.php (ou partout où vous mappez). Dans la vérification de l'administrateur sous "Magasins" > " Tous les magasins ". Vérifiez votre site Web, magasin et magasin voir les codes de magasin.
Une fois que j'ai réalisé que Magento a tronqué le code de magasin que j'avais entré et fait le même ajustement dans la cartographie, tout a recommencé à fonctionner.
la source