Magento重新索引错误产品平面数据

时间:2013-08-09 15:53:52

标签: php mysql magento indexing

我知道每个人都认为这是之前发布的相同问题,但我已经尝试了其他答案

Product Flat Data index process unknown error:
exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation:         1452 Cannot add or update a child row: a f     oreign key constraint fails (`Riders`.    <result 2 when explaining filename '#sql-634_21fc81'>, CONSTRAINT    `FK_CAT_PRD_FLAT_1_ENTT_ID     _CAT_PRD_ENTT_ENTT_ID` FOREIGN KEY (`entity_id`) REFERENCES `catalog_product_entity` (`enti)' in /home/.sites/143/site2/web/lib/Ze         nd/Db/Statement/Pdo.php:228
Stack trace:
#0 /home/.sites/143/site2/web/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement- >execute(Array)
#1 /home/.sites/143/site2/web/lib/Varien/Db/Statement/Pdo/Mysql.php(110):  Zend_Db_Statement_Pdo->_execute(Array)
#2 /home/.sites/143/site2/web/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#3 /home/.sites/143/site2/web/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#4 /home/.sites/143/site2/web/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('ALTER TABLE `ca...', Arr     ay)
#5 /home/.sites/143/site2/web/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLE `ca...',      Array)
#6 /home/.sites/143/site2/web/lib/Varien/Db/Adapter/Pdo/Mysql.php(340): Varien_Db_Adapter_Pdo_Mysql->query('ALTER TABLE `ca...')
#7 /home/.sites/143/site2/web/lib/Varien/Db/Adapter/Pdo/Mysql.php(2569): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLE `ca..     .')
#8 /home/.sites/143/site2/web/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.p    hp(816): Varien_Db_Adapter_Pdo_Mysql     ->addForeignKey('FK_CAT_PRD_FLAT...',   'catalog_product...', 'entity_id', 'catalog_product...', 'entity_id', 'CASCADE', 'CASCADE')
#9 /home/.sites/143/site2/web/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.p    hp(1390): Mage_Catalog_Model_Resourc     e_Product_Flat_Indexer->prepareFlatTable(1)
#10  /home/.sites/143/site2/web/app/code/core/Mage/Catalog/Model/Product/Flat/Indexer.php(296):    Mage_Catalog_Model_Resource_Product     _Flat_Indexer->reindexAll()
#11 /home/.sites/143/site2/web/app/code/core/Mage/Catalog/Model/Product/Indexer/Flat.php(336):  Mage_Catalog_Model_Product_Flat_Ind     exer->reindexAll()
#12 /home/.sites/143/site2/web/app/code/core/Mage/Index/Model/Process.php(209): Mage_Catalog_Model_Product_Indexer_Flat->reindexAl     l()
#13 /home/.sites/143/site2/web/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll()
#14 /home/.sites/143/site2/web/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything()
#15 /home/.sites/143/site2/web/shell/indexer.php(198): Mage_Shell_Compiler->run()
#16 {main}

我删除了目录产品实体中存在的所有行,但未删除目录类别产品中的所有行。我也运行了数据库修复工具。它说我的数据库没有损坏。我也试过截断表格。这些都没有解决问题。

目前我的catalog_product_flat表为空。

我不知道还有什么可以尝试,但我真的需要纠正这个错误,继续我项目的下一部分。我非常乐意从头开始,但这是一个有实时产品和订单的现场网站。

非常感谢任何建议或帮助。

2 个答案:

答案 0 :(得分:4)

  1. 截断:

    • catalog_product_flat_1
    • catalog_product_flat_2
    • catalog_product_flat_3
    • catalog_product_flat_cl
  2. 手动重新索引: php /yoursite/shell/indexer.php --reindexall

  3. 问候。

答案 1 :(得分:4)

  1. 删除var / locks /
  2. 中的所有锁
  3. 在数据库中,删除所有以catalog_product_flat _
  4. 开头的表
  5. 在终端(命令行)中,cd到shell文件夹
  6. 运行php indexer.php --reindexall