magento 1.7: Não é possível reindexar product_flat_data

10

Eu recebo o seguinte erro ao tentar reindexar meu banco de dados magento ..

Erro desconhecido do processo do índice de dados simples do produto: exceção 'PDOException' com a mensagem 'SQLSTATE [23000]: Restrição de integridade> violação: 1452 Não é possível adicionar ou atualizar uma linha filho: uma restrição de chave estrangeira falha> ( d014505f., CONSTRAINT> FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_IDFOREIGN KEY ( entity_id)> REFERÊNCIAS catalog_product_entity(`e) 'em> /www/htdocs/w00f5624/lib/Zend/Db/Statement/Pdo.php:228

Como faço para corrigir isso??

David Vendryes
fonte

Respostas:

28

conforme declarado corretamente pela Sander, os produtos excluídos ainda presentes na tabela plana de produtos causam esse erro. De qualquer forma, não será necessário truncar a tabela inteira. Você pode encontrar estes produtos por esta consulta 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 ) 

Você precisará excluir esses itens, o que pode ser feito usando esta consulta 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 ) 

Retirado daqui (alemão): http://www.avs-webentwicklung.de/nc/blog/artikel/magento-fehler-beim-index-aufbau-sofortmassnahmen.html

Pergunte-me se você precisar de mais conselhos.

simonthesorcerer
fonte
Boa consulta, você os utiliza para uma tarefa de limpeza periódica ou somente quando necessário?
Sander Mangel
Obrigado :) Os créditos para o primeiro pertencem ao autor do link. Eu os uso apenas quando ocorre esse erro, principalmente quando os dados são excluídos diretamente do banco de dados, ou seja, com o MAGMI. E eles ainda são raros. Eu ainda não precisava usá-lo periodicamente, apesar de achar que isso seria possível. Quando você gerencia produtos manualmente, o Magento cuida das tabelas de índice ao salvar / excluir (quando os índices são configurados corretamente).
simonthesorcerer
Algumas explicações podem ser encontradas aqui: catgento.com/...
Dmytro Zavalkin
@simonthesorcerer Obrigado, ajuda-me a resolver este erro :) #
317 Bijal Bhavsar
4

Eu já tive esse problema antes. Eu o resolvi truncando as tabelas product_flat_data e depois reindexando. É causado por produtos inexistentes ainda presentes na tabela.

Sander Mangel
fonte
Olá Sander, tentei a solução, mas nada aconteceu comigo. Também truncei o catalog_product_flat_1, mas o indexador de atributos do produto não está funcionando.
Sarvagya