![](/img/trans.png)
[英]How to fix migrate Laravel error 'PDOException and PDO::__construct'
[英]How to fix magento reindexing with PDOException error?
重新索引数据时出现错误。 我已经工作了大约3天,这个问题仍然找不到解决方案。 这是我收到的日志错误:
默认值(MANAdev)索引化处理未知错误:异常“PDOException”有消息“SQLSTATE [23000]:完整性约束违规:1452不能添加或更新子行,外键约束失败(
glasseso_magento
。m_filter2_value
,约束FK_m_filter2_value_mana_db?edit_session
FOREIGNedit_session_id
KEY(edit_session_id
)参考m_edit_session
(id
)ON DELETE CASCADE ON UPDATE CASCAD
堆栈跟踪:
#0 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array)
#1 /Applications/MAMP/htdocs/magestore/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#2 /Applications/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->execute(Array)
#4 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `m_...', Array)
#5 /Applications/MAMP/htdocs/magestore/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `m_...', Array)
#6 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `m_...', Array)
#7 /Applications/MAMP/htdocs/magestore/app/code/core/Mage/Core/Model/Resource/Db/Abstract.php(453): Zend_Db_Adapter_Abstract->insert('m_filter2_value', Array)
#8 /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))
#9 /Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Helper/Data.php(217): Mage_Core_Model_Abstract->save()
#10 /Applications/MAMP/htdocs/magestore/app/code/local/Mana/Db/Model/Indexer.php(36): Mana_Db_Helper_Data->replicate()
#11 /Applications/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): Mage_Index_Model_Process->reindexAll()
#13 /Applications/MAMP/htdocs/magestore/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything()
#14 /Applications/MAMP/htdocs/magestore/shell/indexer.php(198): Mage_Shell_Compiler->run()
#15 {main}
下一个例外
'Zend_Db_Statement_Exception'有消息“SQLSTATE [23000]:完整性约束违规:1452不能添加或更新子行,外键约束失败(
glasseso_magento
。m_filter2_value
,约束FK_m_filter2_value_mana_db?edit_session
外键(edit_session_id
)参考m_edit_session
(id
)ON DELETE /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement/Pdo.php:234中的CASCADE UPDATE CASCAD)
堆栈跟踪:
#0 /Applications/MAMP/htdocs/magestore/lib/Varien/Db/Statement/Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(Array)
#1 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(Array)
#2 /Applications/MAMP/htdocs/magestore/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#3 /Applications/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/Varien/Db/Adapter/Pdo/Mysql.php(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->insert('m_filter2_value', Array)
#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->save()
#9 /Applications/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 /Applications/MAMP/htdocs/magestore/shell/indexer.php(158): Mage_Index_Model_Process->reindexEverything()
#13 /Applications/MAMP/htdocs/magestore/shell/indexer.php(198): Mage_Shell_Compiler->run()
#14 {main}
希望有人能在这个问题上帮助我。
我看了一下m_edit_session的内容,只有一行ID为1的行,并且created_at下有一个时间戳。 我将唯一的那一行的ID更改为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;");
祝好运!
一种快速的解决方案是捕获异常并将其记录下来,以便索引器可以完成其工作。
也许try {} catch {}块适合这里:
应用程序/MAMP/htdocs/magestore/app/code/local/Mana/Db/Helper/Data.php(217):Mage_Core_Model_Abstract-> save()
异常的原因可能在Mana-Module的不一致实现中找到。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.