2013-12-18 19 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