我刚刚将我的magento商店从1.4.2升级到1.7.0.2 ..并且升级进行顺利,但是当我尝试在升级后重新索引数据时...它在产品价格上失败..
我尝试过使用SSH中的php shell/indexer.php --reindexall
,但是产品价格因这些错误而失败(我使用pastebin,因为错误很长):
从我所看到的,表catalog_product_index_tier_price
是空的......我不确定这是否会导致任何问题?
我尝试了许多不同的方法来解决它但却无济于事......例如:
/site/var/locks
他们都没有工作..我不是MySQL的专家,但我知道一点点......所以我希望有人能够找出导致错误的原因并帮助我,我相信它也可能有所帮助其他人也遇到了和我一样的问题:)
谢谢!〜
答案 0 :(得分: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
删除不应存在的列。 问题将得到解决。 问候。
答案 1 :(得分:0)
我遇到了同样的问题,日志说的是这样的事情
exception ‘PDOException’ with message ‘SQLSTATE[21S01]: Insert value list does not match column list ...
当我追查导致错误的异常和查询时,我发现升级没有正确完成,数据库中的某些列与产品索引组价格相关。 我不得不再次添加它们(通过再次运行与产品属性组价格相关的设置文件),它就像一个魅力。