提前为冗长的帖子道歉。
我正在关注Alan Storm关于magento开发的文章。我正在关注该系列关于资源设置的第6部分。我在配置文件中创建了资源设置,并正确放置了Setup.php文件。但是,如果我尝试刷新缓存或尝试访问magento的任何页面,我收到一条错误消息:处理您的请求时出错。如果我从配置文件中删除设置部分,一切都会再次完美。这是我的文件: Config.xml文件
<config>
<modules>
<Foostor_Weblog>
<version>0.1.0</version>
</Foostor_Weblog>
</modules>
<frontend>
<routers>
<weblog>
<use>standard</use>
<args>
<module>Foostor_Weblog</module>
<frontName>weblog</frontName>
</args>
</weblog>
</routers>
</frontend>
<global>
<models>
<weblog>
<class>Foostor_Weblog_Model</class>
<!--
need to create our own resource, cant just
use core_mysql4
-->
<resourceModel>weblog_mysql4</resourceModel>
</weblog>
<weblog_mysql4>
<class>Foostor_Weblog_Model_Mysql4</class>
<entities>
<blogpost>
<table>blog_posts</table>
</blogpost>
</entities>
</weblog_mysql4>
</models>
<resources>
<weblog_setup>
<setup>
<module>Foostor_Weblog</module>
<class>Foostor_Weblog_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</weblog_setup>
<weblog_write>
<connection>
<use>core_write</use>
</connection>
</weblog_write>
<weblog_read>
<connection>
<use>core_read</use>
</connection>
</weblog_read>
</resources>
</global>
</config>
这是Setup.php文件:
同样在var / reports文件夹的报告中,我发现了以下错误消息:
a:5:{i:0;s:102:"SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'weblog_setup' for key 'PRIMARY'";i:1;s:1493:"#0 C:\wamp\www\magento\lib\Zend\Db\Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 C:\wamp\www\magento\lib\Zend\Db\Adapter\Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 C:\wamp\www\magento\lib\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `co...', Array)
#3 C:\wamp\www\magento\lib\Varien\Db\Adapter\Pdo\Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `co...', Array)
#4 C:\wamp\www\magento\lib\Zend\Db\Adapter\Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `co...', Array)
#5 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Mysql4\Resource.php(96): Zend_Db_Adapter_Abstract->insert('core_resource', Array)
#6 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(290): Mage_Core_Model_Mysql4_Resource->setDbVersion('weblog_setup', '0.1.0')
#7 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(233): Mage_Core_Model_Resource_Setup->_upgradeResourceDb('0', '0.1.0')
#8 C:\wamp\www\magento\app\code\core\Mage\Core\Model\Resource\Setup.php(161): Mage_Core_Model_Resource_Setup->applyUpdates()
#9 C:\wamp\www\magento\app\code\core\Mage\Core\Model\App.php(399): Mage_Core_Model_Resource_Setup::applyAllUpdates()
#10 C:\wamp\www\magento\app\code\core\Mage\Core\Model\App.php(329): Mage_Core_Model_App->_initModules()
#11 C:\wamp\www\magento\app\Mage.php(627): Mage_Core_Model_App->run(Array)
#12 C:\wamp\www\magento\index.php(80): Mage::run('', 'store')
#13 {main}";s:3:"url";s:48:"/magento/index.php/weblog/index/showAllBlogPosts";s:11:"script_name";s:18:"/magento/index.php";s:4:"skin";s:7:"default";}
我在一些帖子中发现,可以通过清除magento db中的Log_ *表的内容来避免完整性约束违规。但我不确定这是否是我需要做的。好心劝告。感谢。
答案 0 :(得分:2)
您似乎已在weblog_setup
表中拥有core_resource
密钥,因为它是唯一密钥,因此无法复制。尝试从表中删除该行,并确保您的设置脚本正确运行并且不会产生错误。
答案 1 :(得分:0)
我有类似的问题。原因是我的安装脚本中使用了变量$file
。因此它与$file
中的变量Mage_Core_Model_Resource_Setup::_modifyResourceDb
发生了冲突。
我不知道是否是相同的情况,但永远不会将安装脚本中的变量命名为$file
,$fileName
或$version
。 < / p>