Php Magento-无法重新编制产品价格索引-外键约束失败

Php Magento-无法重新编制产品价格索引-外键约束失败,php,mysql,magento,foreign-keys,reindex,Php,Mysql,Magento,Foreign Keys,Reindex,我最近刚将我的magento商店从1.4.2升级到1.7.0.2。。升级进行得很顺利,但当我尝试在升级后重新索引数据时。。它在产品价格上失败了 我曾尝试从SSH使用php shell/indexer.php--reindexall,但在产品价格上失败,出现了以下错误(我使用pastebin,因为错误很长): 据我所见,表catalog\u product\u index\u tier\u price为空。。我不确定这是否会引起任何问题 我试过许多不同的方法来解决它,但都没有用。。例如: 解决

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

我曾尝试从SSH使用
php shell/indexer.php--reindexall
,但在产品价格上失败,出现了以下错误(我使用pastebin,因为错误很长):

据我所见,表
catalog\u product\u index\u tier\u price
为空。。我不确定这是否会引起任何问题

我试过许多不同的方法来解决它,但都没有用。。例如:

  • 解决方案:

    请执行以下操作:

    通过以下方式启用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,然后运行重新索引。然后检查上面指定的日志文件

    日志文件指示数据库中导致问题的表,然后将此表的表结构与此处相同的表结构进行比较:

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

    我收到了同样的问题,日志上写的是这样的内容

    exception ‘PDOException’ with message ‘SQLSTATE[21S01]: Insert value list does not match column list ...
    
    当我追踪导致错误的异常和查询时,我发现升级没有正确完成,数据库中与产品索引组price相关的一些列缺失。
    我不得不再次添加它们(通过再次运行与产品属性组价格相关的设置文件),它的效果非常好。

    Hi@sweet72,感谢您提出的解决方案。。我完全按照你说的做了。。就我个人而言,我并不真正理解sql.txt的内容。。我已经在这里将内容粘贴到了pastebin:[link]你能帮我看看我应该检查哪个表中的“额外”列吗?因为我试着同时检查了
    catalog\u product\u index\u tier\u price
    catalog\u product\u entity
    ,它们似乎有正确的列。。谢谢你的帮助!:)