:::: MENU ::::

Magento Integrity constraint violation FK_CAT_PRD_FLAT_1_ENTT_ID CAT_PRD_ENTT_ENTT_ID

Magento Integrity constraint violation FK_CAT_PRD_FLAT_1_ENTT_ID CAT_PRD_ENTT_ENTT_ID
23 votos, 3.87 media (76% puntos)

El error Integrity constraint violation FK_CAT_PRD_FLAT_1_ENTT_ID_CAT_PRD_ENTT_ENTT_ID se produce en ocasiones al reindexar el catálogo flat de productos y tiene que ver con algún error que se haya producido al importar o eliminar productos del catálogo y que ha hecho que alguna de las restricciones de tabla del catálogo flat no se cumpla.

Magento no elimina ni trunca las tablas del catálogo flat durante el proceso de reindexado, para evitar que durante el proceso la tienda quede inoperativa (si estamos utilizando ese tipo de catálogo). Simplemente actualiza los registros, lo que produce errores como este si por ejemplo tenemos información de productos antiguos que no se han eliminado correctamente.

Podemos solucionar el error truncando las tablas manualmente en la base de datos y reindexando posteriormente.

Desde nuestro phpMyAdmin:

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE catalog_product_flat_1;
TRUNCATE TABLE catalog_product_flat_2;
TRUNCATE TABLE catalog_product_flat_3;
SET FOREIGN_KEY_CHECKS=1;

Y posteriormente, desde el shell:

php indexex.php --reindex catalog_product_flat

Otros autores recomiendan eliminar las tablas del catálogo flat, pero Magento puede no ser capaz de volver a crearlas en función del tipo de base de datos que tengamos.

Por supuesto, se recomienda crear un backup completo antes de aplicar cualquier operación.




Hey! Qué opinas sobre el artículo?