magento 1.7: product_flat_data yeniden dizini oluşturulamıyor


10

Benim magento veritabanını reindex çalışırken aşağıdaki hatayı alıyorum ..

Ürün Düz Veri dizini işlemi bilinmeyen hata: 'SQLSTATE [23000] iletisiyle' PDOException 'özel durumu: Dürüstlük kısıtlaması> ihlal: 1452 Bir alt satır eklenemiyor veya güncellenemiyor: bir yabancı anahtar kısıtlaması başarısız oluyor> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> catalog_product_entity> /Www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228 içindeki REFERANSLAR (e)

Bunu nasıl düzeltirim?

Yanıtlar:


28

Sander tarafından doğru şekilde belirtildiği gibi, ürün düz tablosunda hala bulunan silinmiş ürünler bu hataya neden olur. Her neyse, tüm tabloyu kesmek gerekli olmayacak. Bu ürünleri bu SQL sorgusuyla bulabilirsiniz:

SELECT pf1.entity_id
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

Daha sonra bu SQL sorgusu kullanılarak yapılabilecek bu öğeleri silmeniz gerekir:

DELETE pf1.*
FROM catalog_product_flat_1 pf1
LEFT JOIN catalog_product_entity p ON pf1.entity_id = p.entity_id
WHERE ISNULL( p.entity_id ) 

Buradan alınmıştır (Almanca): http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Bana daha fazla tavsiyeye ihtiyacınız olup olmadığını sorun.


Güzel bir sorgu, bunları periyodik bir temizleme görevi için mi yoksa yalnızca gerektiğinde mi kullanıyorsunuz?
Sander Mangel

Teşekkürler :) Birincisi için krediler linkin yazarına aittir. Ben sadece böyle bir hata meydana geldiğinde, çoğunlukla veri doğrudan veritabanından, yani MAGMI ile silindiğinde kullanın. Ve hala nadirdirler. Henüz periyodik olarak kullanmak zorunda değildim, ancak bunun mümkün olacağını düşünüyorum. Ürünleri manuel olarak yönettiğinizde, Magento kaydetme / silme üzerindeki dizin tablolarına bakar (dizinler doğru yapılandırıldığında).
simonthesorcerer

Bazı açıklamalar burada bulunabilir: catgento.com/…
Dmytro Zavalkin

@simonthesorcerer Teşekkürler, bu hatayı çözmeme yardımcı oluyor :)
Bijal Bhavsar

4

daha önce bu sorunu yaşadım. Bunu product_flat_data tablolarını keserek ve daha sonra yeniden endeksleyerek çözdüm. Bunun nedeni hala tabloda bulunmayan mevcut olmayan ürünlerdir.


Merhaba Sander, çözümü denedim ama benim için hiçbir şey olmadı ben de catalog_product_flat_1 kesildi ama ürün özellikleri için dizinleyici çalışmıyor.
Sarvagya
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.