2011-06-21 15 views
0

あらかじめ長い投稿をお詫び申し上げます。マゼンタのリソース設定に問題がある

私はMagento開発に関するAlan Stormの記事に従っていました。私は、リソースの設定について、そのシリーズの第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 /レポート]フォルダ内のレポートでも

、私はこのエラーメッセージを見つけました:

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_ *テーブルの内容を消去することで、整合性制約違反を回避できることが、いくつかの記事で分かりました。しかし、私はこれが私がする必要があるかどうかはわかりません。親切にアドバイス。ありがとう。

答えて

2

すでにweblog_setupというキーがcore_resourceテーブルにあるようですが、それは一意のキーなので重複することはできません。その行をテーブルから削除して、セットアップスクリプトが正しく実行され、エラーが発生しないようにしてください。

+0

ありがとう、私はそれを考え出した。 – Nithin

0

同様の問題がありました。その理由は、インストールスクリプトに変数$fileが使用されたためです。そこで、Mage_Core_Model_Resource_Setup::_modifyResourceDbの変数$fileとの衝突が発生しました。

私はそれが同じケースであるかどうかわからない、しかし、$file$fileNameまたは$versionとしてインストールスクリプト内の変数に名前を付けることはありません。

関連する問題