2013-12-18 20 views
0

我重新索引数据时出错。我一直在工作约3天,这个问题仍然找不到解决方案。这里是我收到的日志错误:如何解决与PDOException错误的magento reindexing?

缺省值(MANAdev)索引进程未知错误: 异常'PDOException'消息'SQLSTATE [23000]:完整性约束违规:1452无法添加或更新子行:a外键约束失败在/Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement/Pdo.php(glasseso_magentom_filter2_value,约束FK_m_filter2_value_mana_db?edit_session外键(edit_session_id)参考文献m_edit_sessionid)ON DELETE CASCADE ON UPDATE CASCAD)” :228 堆栈跟踪:

0 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement/Pdo.php(228):PDOStatement-> execute(Arra Y)

1 /Applications/MAMP/htdocs/magestore/lib/Varien/Db/Statement/Pdo/Mysql.php(110):Zend_Db_Statement_Pdo - > _执行(阵列)

2 /应用/ MAMP/htdocs/magestore/lib/Zend/Db/Statement.php(300):Varien_Db_Statement_Pdo_Mysql - > _execute(Array)

3 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php( 479):Zend_Db_Statement->执行(阵列)

4 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Pdo/Abstract.php(238):Zend_Db_Adapter_Abstract->查询('INSERT INTO` m _...',Array)

5 /Applications/MAMP/htdocs/magestore/lib/Varien/Db/Adapter/Pdo/Mysql.php(419):Zend_Db_Adapter_Pdo_Abstract->查询( 'INSERT INTO`米_...',阵列)

6 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php(574):Varien_Db_Adapter_Pdo_Mysql->查询( 'INSERT INTO`米_...',阵列)

7/(453):Zend_Db_Adapter_Abstract-> insert('m_filter2_value',Array)

8/Applications/MAMP/htdocs/magestore/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php MAMP/htdocs/magestore/app/code/core/Mage/Core/Model/Abstract.php(318):Mage_Core_Model _Resource_Db_Abstract->保存(对象(Mana_Filters_Model_Filter2_Value))

9 /Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Helper/Data.php(217):Mage_Core_Model_Abstract->保存()

10 /Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Model/Indexer.php(36):Mana_Db_Helper_Data->复制()

11 /应用/ MAMP/htdocs中/ magestore/app/code/core/Mage/Index/Model/Process.php(209):Mana_Db_Model_Indexer-> reindexAll()

12/Applications/MAMP/htdocs/magestore/app/code/core/Mage/Index /Model/Process.php(255):法师_Index_Model_Process-> reindexAll()

13 /Applications/MAMP/htdocs/magestore/shell/indexer.php(158):Mage_Index_Model_Process-> reindexEverything()

14 /应用/ MAMP/htdocs中/ magestore /壳/索引。PHP(198):Mage_Shell_Compiler->的run()

15 {主}

下一页异常 'Zend_Db_Statement_Exception' 有消息“SQLSTATE [23000]:完整性约束违规:1452不能添加或更新子行:一外键约束失败在/Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement/Pdo.php(glasseso_magentom_filter2_value,约束FK_m_filter2_value_mana_db?edit_session外键(edit_session_id)参考文献m_edit_sessionid)ON DELETE CASCADE ON UPDATE CASCAD)” :234 堆栈跟踪:

0/Applications/MAMP/htdocs/magestore/lib /瓦瑞恩/ DB /报表/ PDO/Mysql.php(110):Zend_Db_Statement_Pdo - > _执行(阵列)

1 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement.php(300):Varien_Db_Statement_Pdo_Mysql - > _执行(阵列)

2 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php(479):Zend_Db_Statement->执行(阵列)

3 /应用/ MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Pdo/Abstract.php(238):Zend_Db_Adapter_Abstract-> query('INSERT INTO`m _...',Array)

4/Applications/MAMP /的htdocs/magestore/LIB /瓦瑞恩/ DB /适配器/ PDO/Mysql.p hp(419):Zend_Db_Adapter_Pdo_Abstract-> query('INSERT INTO`m _...',Array)

5 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php(574) :Varien_Db_Adapter_Pdo_Mysql-> query('INSERT INTO`m _...',Array)

6/Applications/MAMP/htdocs/magestore/app/code/core/Mage/Core/Model/Resource/Db/Abstract。 PHP(453):Zend_Db_Adapter_Abstract->插入( 'm_filter2_value',阵列)

7 /Applications/MAMP/htdocs/magestore/app/code/core/Mage/Core/Model/Abstract.php(318):Mage_Core_Model_Resource_Db_Abstract - > save(Object(Mana_Filters_Model_Filter2_Value))

8 /Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Helper/Data.php(217):Mage_Core_Model_Abstract->保存()

9 /应用/ MAMP/htdocs中/ magestore/app/code/local/Mana/Db/Model/Indexer.php(36):Mana_Db_Helper_Data-> replicate()

10/Applications/MAMP/htdocs/magestore/app/code/core/Mage/Index/Model /Process.php(209):Mana_Db_Model_Indexer-> reindexAll()

11 /Applications/MAMP/htdocs/magestore/app/code/core/Mage/Index/Model/Process.php(255):Mage_Index_Model_Process-> reindexAll()

12/Applica蒸发散/ MAMP/htdocs中/ magestore /壳/ indexer.php(158):Mage_Index_Model_Process-> reindexEverything()

13 /Applications/MAMP/htdocs/magestore/shell/indexer.php(198):Mage_Shell_Compiler->运行()

14 {main}

希望有人能帮助我解决这个问题。 谢谢。

回答

0

一个快速解决方案是捕获异常并记录它,这样索引器就可以完成它的工作。

也许在try {}赶上{}块适合在这里:

Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Helper/Data.php(217): Mage_Core_Model_Abstract->save()

异常的原因可能不一致的实施法力模块中找到。

+0

“不一致的实现”是什么意思? –

1

一个好的解决方案可能是禁用“外键检查”。在文件/app/code/local/Mana/Db/Helper/Data.php(217)...

更改此:

$object->save(); 

对于这一点:

$resource = Mage::getSingleton('core/resource'); 
$writeConnection = $resource->getConnection('core_write'); 
$writeConnection->query("SET FOREIGN_KEY_CHECKS = 0;"); 
$object->save(); 
$writeConnection->query("SET FOREIGN_KEY_CHECKS = 1;"); 

好运!

2

我看了一下m_edit_session的内容,只有一行ID为1,在created_at下有一个时间戳。我将那个唯一的行的ID改为0(而不是1),这个错误消失了。

+0

这解决了我的问题!我猜这是因为我复制了数据库,因为还有其他部分将ID从0更改为1,例如用户管理。这很烦人,重复数据库不会保持ID的完整。 – Karl