2012-01-24 4 views
2

カスタムモジュールを使用してカスタムテーブルを作成しようとしています。私は、これはこれは私のconfig.xmlファイルであるMagentoインストールスクリプトが実行されない

CM 
Tablecreation 
etc >> config.xml (has 1.6.0.0 as the version mentioned) 
Helper >> Data.php 
controllers >> IndexController.php 
Model 
    Actualtable.php 
    Mysql4 
    Actualtable.php 
    Resource 
    Mysql4 
    Setup.php 
    sql 
    tablecreation_setup 
    install-1.6.0.0.php 

私のフォルダ構造でカスタムテーブルに

を作成するために、Alan Storm's articleを、次のされています。

<?xml version="1.0" encoding="UTF-8"?> 
    <config> 
    <modules> 
    <CM_Tablecreation> 
     <version>1.6.0.0</version> 
    </CM_Tablecreation> 
</modules> 
<frontend> 
    <routers> 
     <tablecreation> 
      <use>standard</use> 
      <args> 
       <module>CM_Tablecreation</module> 
       <frontName>tablecreation</frontName> 
      </args> 
     </tablecreation> 
    </routers> 
</frontend>  
<global> 

    <models> 
     <tablecreation> 
      <class>CM_Tablecreation_Model</class> 
      <resourceModel>tablecreation_mysql4</resourceModel> 
     </tablecreation> 
     <tablecreation_mysql4> 
     <class>CM_Tablecreation_Model_Mysql4</class>  
     <entities> 
      <actualtable> 
       <table>actual_table</table> 
      </actualtable> 
     </entities>      
    </tablecreation_mysql4> 
    </models> 

    <resources> 
    <tablecreation_setup> 
    <setup> 
     <module>CM_Tablecreation</module> 
     <class>CM_Tablecreation_Model_Resource_Mysql4_Setup</class> 
    </setup> 
    <connection> 
     <use>core_setup</use> 
    </connection> 
    </tablecreation_setup> 
    <tablecreation_write> 
     <connection> 
      <use>core_write</use> 
     </connection> 
    </tablecreation_write> 
    <tablecreation_read> 
     <connection> 
      <use>core_read</use> 
     </connection> 
    </tablecreation_read>  
</resources>  

    <helpers> 
      <tablecreation> 
       <class>CM_Tablecreation_Helper</class> 
      </tablecreation> 
    </helpers> 
</global> 
</config> 

そして、これは私がアプリ/コード/コア/メイジ/コア/リソース/ Setup.phpなどの例外メッセージとトライキャッチを置くことによって、デバッグを試みた

a:5:{i:0;s:69:"/home/dev/public_html/app/code///sql/tablecreation_setup not found";i:1;s:818:"#0 /home/dev/public_html/app/code/core/Mage/Core/Model/Resource/Setup.php(421): Mage_Core_Model_Resource_Setup->_modifyResourceDb('install', '', '1.6.0.0') 

たびに取得エラーですこのトピックに関する以前の類似の質問のいくつかでは提案されていますが、成功しませんでした。

私のモジュールはcore_resourceテーブルにリストされていません。たとえそれがどういうものだったとしても、テーブルは決して作成されません。

core_resourceテーブルにリストされている状況もありましたが、モジュールのレコードをテーブルから削除して(インストールスクリプトを再実行する)、サイトのページを更新しようとすると、エラーが発生します同じエラーが発生したレポートを開いているページ。

基本的に私が従うネット上の記事は、この同じエラーで立ち往生します。このエラーとその原因を説明してください。おそらく、それをソートする解決策が何であるかを示唆している人がいるかもしれません。

事前に感謝します。

+2

ここにconfig.xmlを貼り付けてください –

答えて

2

私はあなたが投稿したものと問題のカップルを見ることができます:

  1. あなたのスクリプトをインストールmysql4インストール-1.6.0.0.php呼び出す必要があります。 Magentoが名前を誤って設定スクリプトを見つけられない場合は、それを実行することができないので、install-1.6.0.0.phpの名前をmysql4-install-1.6.0.0.phpに変更します。あなたのアプリケーションの/ etc/modules.CM_Tablecreation.xmlファイルをチェック

    <resources> 
        <tablecreation_setup> 
         <setup> 
          <module>CM_Tablecreation</module> 
         </setup> 
         <connection> 
          <use>core_setup</use> 
         </connection> 
        </tablecreation_setup> 
    </resources> 
    
  2. あなたはこのようになりますあなたのconfig.xmlファイルのグローバルセクション内のリソースタグが必要になります。投稿したエラーメッセージは、セットアップファイルの場所を探そうとしているパスからコードプールとモジュール名が見つからないという点で面白いです。 xmlファイルにモジュールが存在する場所に応じて、文字列 "core"、 "community"または "local"を含むconfig> modules> YourModule_NameHere> codePoolタグ(codePoolに大文字のPがあることに注意)があることを確認します。

あなたは、件名にmy previous answer to a similar question、およびAlan Storm's definitive answerでいくつかの援助を見つけることができます。

PS:拡張バージョンは、Magento自体と同じバージョン番号である必要はありません。バージョン番号があなたを幸せにして、必要に応じて増分するだけで始まります。

+0

返信いただきありがとうございます。私はそれをmysql4-install-0.0.1という名前にしていましたが、それでも1.6.0.0を試してみることはできませんでした。しかし、とにかく私はそれをmysql4-install-1.6.0.0に戻しました。phpと私の ''タグは、私が削除した ''を除いて多かれ少なかれました。私は今、私のモジュールがcore_resourceテーブルにリストされているのを見ることができますが、まだ実際のテーブルを見ることはできません。これも以前に起こったことです。 Alan Stormのデバッグ手法を試しましたが、エラー/例外が表示されることはありません。では、どのようにして実際のテーブルを取得するのですか? – ivn

+0

私はもう一度Alan Stormのデバッグ技術を試しました。私は 'core_resource'テーブルから自分のモジュールエントリを削除し、コアのSetup.phpを修正して例外をスローし、ページの再読み込みを試み、エラー報告を受けました。私は質問で言及したのと同じエラーを再び見つけました。だから私はなぜそれが今エラーを投げるのか分からない。しかし、私がレコードを挿入すると、私はエラーは出ませんが、再びテーブルはありません。 – ivn

+0

core_resourceのレコードは、セットアップスクリプトが正常に実行されたことを示します。 Magentoはすでにセットアップスクリプトを実行しようとしていませんが、すでに成功していると考えています。 –