【问题标题】:magento can't reindex product attributesmagento 无法重新索引产品属性
【发布时间】:2013-01-17 06:07:55
【问题描述】:

当我从 Index Management 运行 Reindex 时,它会给出错误 “无法初始化索引器进程。”

所以根据下面的文章here http://jasonehmke.com/ecommerce/cannot-initialize-the-indexer-process-in-magento/

我跑了

php -f indexer.php reindexall 

它给出了以下输出:

Product Prices index was rebuilt successfully
Catalog URL Rewrites index was rebuilt successfully
Product Flat Data index was rebuilt successfully
Category Flat Data index was rebuilt successfully
Category Products index was rebuilt successfully
Catalog Search Index index was rebuilt successfully
Stock Status index was rebuilt successfully
Tag Aggregation Data index was rebuilt successfully

Product Attributes index process unknown error:

exception 'PDOException' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '65-542-1-65' for key 'PRIMARY'' in /home/bizzosph/public_html/lib/Zend/Db/Statement/Pdo.php:228

Next exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '65-542-1-65' for key 'PRIMARY'' in /home/bizzosph/public_html/lib/Zend/Db/Statement/Pdo.php:234

知道如何解决这个问题吗?它没有告诉我哪个表有重复条目。

谢谢

【问题讨论】:

  • 其实我也遇到过类似的问题。我可以通过从var/locks 文件夹中删除所有.locks 文件,然后删除(trunacate)表catalog_flat_product_1 中的所有行,最后再次运行索引器来修复它。

标签: mysql magento magento-1.7


【解决方案1】:

我确定您在发布此问题后已经继续前进,但由于它有大约 2500 次观看(在这里有这个答案会对我有所帮助),我将添加我找到的解决方案。 这不需要截断任何数据库表甚至任何直接 SQL 查询

昨晚,我遇到了同样的问题。我的错误与您的错误相同(除了涉及导致问题的产品和属性的数字)。如果您在管理员的“管理产品”部分重新保存该产品(无需更改,只需打开它进行编辑并单击保存),它将解决问题 - 但您很可能有更多产品会带来其他类似错误。

在我的例子中,这不仅仅是 1 个产品的问题,还有数百个产品导致错误(每个保存的产品都会带来一个新产品)。而且并非所有属性都具有相同的属性(我在上次导入时更新了包含 4,000 多种产品的数据库中的多个属性)。

由于一切似乎实际上都正确地保存在数据库中(因为重新保存似乎是在修复它并将正确的数据提供给最终保存的产品),我有了一个想法。

为什么不导出所有 4k 产品,然后不加修改地重新导入相同的文件,看看是否清除它。

成功了!

tl;dr:如果您在需要重新保存多个产品时遇到此问题,请导出您的整个库存(或相关部分,如果您可以以有用的方式进行细分),然后重新导入相同的文件,没有修改。

我正在使用 Magento v 1.9.0.1

【讨论】:

    【解决方案2】:

    首先尝试清理 Magento 缓存。如果不成功,运行official DB repair tool

    【讨论】:

      【解决方案3】:

      解决方案是运行以​​下 MySQL 查询:

      TRUNCATE TABLE `catalog_product_flat_1`;
      TRUNCATE TABLE `catalog_product_flat_2`;
      TRUNCATE TABLE `catalog_product_flat_3`;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多