magento 1.7: Tidak dapat mengindeks ulang product_flat_data

10

Saya mendapatkan kesalahan berikut saat mencoba mengindeks ulang basis data magento saya ..

Produk Flat Data index error yang tidak diketahui: pengecualian 'PDOException' dengan pesan 'SQLSTATE [23000]: Kendala integritas> pelanggaran: 1452 Tidak dapat menambah atau memperbarui baris anak: kendala kunci asing gagal> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDKUNCI ASING ( entity_id)> REFERENSI catalog_product_entity(`e) 'di> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:28

Bagaimana cara saya memperbaikinya ??

Vendor David
sumber

Jawaban:

28

seperti yang dinyatakan dengan benar oleh Sander, produk yang dihapus masih ada di tabel rata produk menyebabkan kesalahan ini. Bagaimanapun, memotong seluruh tabel tidak akan diperlukan. Anda dapat menemukan produk ini dengan query SQL ini:

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 ) 

Anda kemudian harus menghapus item-item ini, yang dapat dilakukan menggunakan query SQL ini:

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 ) 

Diambil dari sini (Jerman): http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Tanya saya jika Anda perlu saran lebih lanjut.

simonthesorcerer
sumber
Permintaan yang bagus, apakah Anda menggunakannya untuk tugas pembersihan berkala atau hanya jika diperlukan?
Sander Mangel
Terima kasih :) Kredit untuk yang pertama adalah milik penulis tautan. Saya hanya menggunakannya ketika kesalahan seperti itu terjadi, yang sebagian besar ketika data dihapus langsung dari database, yaitu dengan MAGMI. Dan mereka masih langka. Saya tidak harus menggunakannya secara berkala, meskipun saya pikir itu mungkin. Saat Anda mengelola produk secara manual, Magento menangani tabel indeks pada save / on delete (saat indeks dikonfigurasi dengan benar).
simonthesorcerer
Beberapa penjelasan dapat ditemukan di sini: catgento.com/...
Dmytro Zavalkin
@simonthesorcerer Terima kasih, ini membantu saya untuk mengatasi kesalahan ini :)
Bijal Bhavsar
4

Saya pernah mengalami masalah ini sebelumnya. Saya memecahkannya dengan memotong tabel product_flat_data dan kemudian mengindeks ulang. Ini disebabkan oleh tidak ada produk yang masih ada di tabel.

Sander Mangel
sumber
Halo Sander, saya telah mencoba solusinya tetapi tidak ada yang terjadi pada saya, saya juga memotong catalog_product_flat_1 tetapi pengindeks untuk atribut produk tidak berfungsi.
Sarvagya