【问题标题】:Magento - Unable to reindex Product Prices - Foreign Key Constraint FailsMagento - 无法重新索引产品价格 - 外键约束失败
【发布时间】:2013-08-31 09:57:11
【问题描述】:

我最近刚刚将我的 magento 商店从 1.4.2 升级到 1.7.0.2..升级很顺利,但是当我在升级后尝试重新索引数据时..它在产品价格上失败了..

我尝试使用来自 SSH 的 php shell/indexer.php --reindexall,但它在产品价格上失败并出现这些错误(我使用 pastebin,因为错误很长):

http://pastebin.com/iV2tuzDX

据我所知,catalog_product_index_tier_price 表是空的。我不确定这是否会导致任何问题?

我尝试了许多不同的方法来解决它,但都无济于事。像这样的事情:

他们都没有工作.. 我不是 MySQL 专家,但我知道一点.. 所以我希望有人能够找出导致错误的原因并帮助我,我相信它也可能有所帮助其他和我遇到同样问题的人:)

谢谢!~

【问题讨论】:

    标签: php mysql magento foreign-keys reindex


    【解决方案1】:

    解决方案:

    请执行以下操作:

    通过以下方式启用 magento DB 日志记录: lib/Varien/Db/Adapter/Pdo/Mysql.php 。在第 86 行附近,您将看到以下类变量:

    protected $_debug = false; 
    protected $_logAllQueries = false; 
    protected $_logCallStack = false; 
    protected $_debugFile = ‘var/debug/sql.txt’;
    

    将 all 更改为 true,然后运行重新索引。然后检查上面指定的日志文件。

    日志文件指出数据库中的哪个表导致了问题,然后将这个表的表结构与这里的同一个表结构进行比较:http://www.magereverse.com/index/magento-database-diagram/version/1-7-0-2

    删除不应该存在的列。 该问题将得到解决。 问候。

    【讨论】:

    • 嗨@sweet72,感谢您提出的解决方案。我完全按照你提到的那样做。我一生都不太了解那个sql.txt的内容。所以我'已将内容粘贴到此处的 pastebin 中:[link]pastebin.com/ddSv3tVs 你能帮忙看看我应该在哪个表中检查“额外”列吗?因为我尝试检查catalog_product_index_tier_pricecatalog_product_entity 并且它们似乎有正确的列.. 感谢所有帮助! :)
    【解决方案2】:

    我遇到了同样的问题,日志是这样说的

    exception ‘PDOException’ with message ‘SQLSTATE[21S01]: Insert value list does not match column list ...
    

    当我追踪异常和导致错误的查询时,我发现升级没有正确完成,数据库中缺少与产品索引组价格相关的某些列。 我不得不再次添加它们(通过再次运行与产品属性组价格相关的设置文件),它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      相关资源
      最近更新 更多