Magento 2 reindex döner Böyle bir varlık yok


14

Kataloğu Magento 1.9.2.3'ten Magento 2.0.2'ye başarıyla taşıdım. Geçişten sonra, komutu kullanarak yeniden indeksledim php bin/magento indexer:reindex.

Dizinler catalog_category_productve yönetici içinde kabuk ve bildirim catalog_product_categorydöndürme dışında tümü başarıyla yeniden dizine eklenir . Kontrol ettim ama hata yok.No such entity.Reindex Requiredvar/log/

Sonuç olarak, ürünler arka uçtaki kategorilere eklenir, ancak kategoriler ön uçta boş görünür.

Bu soruna ne sebep olabilir? Nasıl hata ayıklayabilirim?


Yanıtlar:


7

Raphael'e ek olarak:

I Hata ayıklama amacıyla (xdebug veya eski dökümleri tarafından) özel durum yapıcısını değiştirerek bu kodda hata ayıklama. Şimdilik kural dışı durumun yapısını değiştirin (dosya \lib\internal\Magento\Framework\Exception\NoSuchEntityException.php)

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

Bundan sonra bir yığın yukarı gidin ve verilen argümanları kontrol edin (argümanlar hata ayıklama geri izinde de mevcuttur, ancak magento nesnelerini boşaltmak gerçekten tarayıcı dostu değildir).

Sonuç olarak, storeGroupRepositorygrup kimliğini bulamadığı yerde oldu. Mağaza tablolarına daldı ve mağaza tablosunda tabloda store_groupolmayan bir referans veren birkaç satır gördüm store_group(mağaza grubu ilgili tabloda mevcut değil).

Hatalı mağaza hatları kaldırıldı ve hata o zamandan beri gitti.

Ancak, bunun farklı bir tabloda / başka bir nedenden de olabileceğini unutmayın. örneğin web sitesi, mağaza veya mağaza grubu bu durumda. Yani bu her zaman kendinizi gerçekleştirmeniz gereken küçük bir aramadır.

Ayrıca bu mağazalar için çok sayıda referans olduğunu öğrendim ve ayrıca bunları db'de manuel olarak kaldırdı. Bu sıkıcı bir iş olabilir, ancak sorunu çözecektir.

Ve bilgisayar korsanlıklarını kaldırmayı unutma.


neden xdebug kullanmıyorsun?
Luke

@TimVroom Ben de aynı hata var.Lütfen bana yardım magento.stackexchange.com/q/236187/24878
akgola 27:18

11

Bu eklemek için çok geç olup olmadığından emin değilim, ama bunu vardı 0 0 olarak ayarlanması gereken bazı varlık kimlikleri neden olduğu ortaya çıktı.

Bu senaryo benim için çalıştı:

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;

Umarım yardımcı olur.


bu bana çok yardımcı oldu, paylaştığın için teşekkürler!
favo

Bu da benim için çalıştı :)
Owen

3

Tamam böylece No such entity.hata mesajı geliyor \lib\internal\Magento\Framework\Exception\NoSuchEntityException.php.

Bu sınıf Magento'nun özel bir istisna sınıfıdır ve Magento 2'de çok kullanılır.

Ne zaman kodu gördüğünüzde:

catch (NoSuchEntityException $e)

Veya

throw NoSuchEntityException;

Bu sınıf kullanılıyor.

Davanızdaki sorun, bu istisnanın nereye atıldığını bulmak zor.

Biraz daraltmak için, başarısız olan dizinlerinizle ilgili iki sınıfta hata ayıklamaya başlayabilirsiniz:

  • Magento\Catalog\Model\Indexer\Category\Product=> katalog_kategori_ürün endeksi
  • Magento\Catalog\Model\Indexer\Product\Category=> katalog_ürün_kategori dizini

Neyse ki, ikincisi birincisini uzatır, böylece bir başlangıç ​​noktanız olur.

Bu indeksleyici sınıfının her birinin, yeniden endekslemeyi işlemek için eylem satırları sınıfları kullandığını unutmayın:

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

Bana göre, bu eylem satırı sınıfları bu iki dizini yeniden endeksleyen doğrudan sınıflar olduğu için hata ayıklamaya başlamalısınız.

Umarım sorununuzu bulmanıza yardımcı olur.


Merhaba @ Raphael, geçişten sonra müşteri oluşturma için benzer bir sorun var.Lütfen
akgola

0

BU HER ŞEYİ DENEME SONRASI BENİM İÇİN ÇALIŞTI.

Sitenizi varsayarsak olduğunu Developer Modesen olarak değiştirebilirsiniz, Production Modegeçiş geri sonra ve net / floş önbellek ve Developer Mode.

Ben son zamanlarda bir sunucudan diğerine veritabanı taşındı gibi, ön ucunda bu sorunu vardı. Bu şekilde çözmeyi başardım.

UMUT BU BAZI BİRİ YARDIMCI.



0

Bu hata, benim durumumda, çok mağazalı, çok alanlı bir kurulum içindi. Magento mağaza kodlarını kısaltır. Alan kodlarını mağaza kodlarıyla eşliyorsanız mağaza kodunun index.php (veya eşlediğiniz her yerde) bölümünde belirtilen yönlendirme ile eşleştiğinden emin olun. Yönetici bölümünde "Mağazalar" > " Tüm Mağazalar " bölümlerini işaretleyin. Web sitenizi kontrol edin, mağaza kodlarını görüntüleyin ve saklayın.

Magento'nun mağaza kodunu kıstığını anladıktan sonra haritaya girip aynı ayarlamaları yaptım ve her şey tekrar çalışmaya başladı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.