magento 1.7: Impossibile reindicizzare product_flat_data


10

Ottengo il seguente errore mentre provo a reindicizzare il mio database magento ..

Errore dell'indice del prodotto flat process errore sconosciuto: eccezione 'PDOException' con messaggio 'SQLSTATE [23000]: vincolo di integrità> violazione: 1452 Impossibile aggiungere o aggiornare una riga figlio: un vincolo di chiave esterna non riesce> ( d014505f., VINCOLO> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> RIFERIMENTI catalog_product_entity(`e) 'in> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228

Come posso risolvere questo ??

Risposte:


28

come affermato correttamente da Sander, i prodotti eliminati ancora presenti nella tabella piatta del prodotto causano questo errore. In ogni caso, non sarà necessario troncare l'intero tavolo. Puoi trovare questi prodotti con questa query SQL:

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 ) 

Dovrai quindi eliminare questi elementi, cosa che puoi fare usando questa query SQL:

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 ) 

Tratto da qui (tedesco): http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Chiedimi se hai bisogno di più consigli.


Bella query, li usi per un'attività di pulizia periodica o solo quando richiesto?
Sander Mangel

Grazie :) I crediti per il primo appartengono però all'autore del link. Li uso solo quando si verifica un errore del genere, soprattutto quando i dati vengono eliminati direttamente dal database, ovvero con MAGMI. E sono ancora rari. Non dovevo ancora usarlo periodicamente, anche se penso che sarebbe possibile. Quando gestisci i prodotti manualmente, Magento si occupa delle tabelle degli indici su save / on delete (quando gli indici sono configurati correttamente).
simonthesorcerer

Alcune spiegazioni possono essere trovate qui: catgento.com/...
Dmytro Zavalkin

@simonthesorcerer Grazie, mi aiuta a risolvere questo errore :)
Bijal Bhavsar

4

ho avuto questo problema prima. L'ho risolto troncando le tabelle product_flat_data e successivamente reindicizzando. È causato da prodotti inesistenti ancora presenti nella tabella.


Ciao Sander, ho provato la soluzione ma non è successo niente per me, ho anche troncato catalog_product_flat_1 ma l'indicizzatore per gli attributi del prodotto non funziona.
Sarvagya,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.