自定义数据库表未显示在Magento中

时间:2011-12-20 12:05:25

标签: php mysql zend-framework magento

我创建了一个自定义模块,其中包含一个自定义数据库表来存储/获取值。我遵循了以下目录结构,但我的表仍未显示在数据库中。关于为什么

的任何想法
app/code/local
Namespace
 Module
   Block

   controllers
     IndexController.php

   etc
     config.xml

   Helper
     Data.php

   Model
     Module.php
     Observer.php
     Mysql4
       Module.php
       Module
         Collection.php

   sql
     module_setup
        mysql4-install-0.1.0.php

   app/etc
      Namespace_Module.xml

这是我的config.xml

<config>    
<modules>
    <Namespace_Module>
        <version>0.1.0</version>
    </Namespace_Module>
</modules>
<global>
<helpers>
    <module>
        <class>Namespace_Module_Helper</class>
    </module>
</helpers>  
<models>
    <module>
        <class>Namespace_Module_Model</class>
    <resourceModel>module_mysql4</resourceModel>
    </module>
    <module_mysql4>
        <class>Namespace_Module_Model_Mysql4</class>
        <entities>
            <module>
                <table>module</table>
            </module>
        </entities>
    </module_mysql4>
 </models>
<resources>
        <module_setup>
            <setup>
                <module>Namespace_Module</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </module_setup>
        <module_write>
            <connection>
                <use>core_write</use>
            </connection>
        </module_write>
        <module_read>
            <connection>
                <use>core_read</use>
            </connection>
        </module_read>
    </resources>
    <blocks>
        <module>
            <class>Namespace_Module_Block</class>
        </module>
    </blocks>
 </global>
 <crontab>
<jobs>
<send_reviews_email>
    <schedule><cron_expr>*/5 * * * *</cron_expr></schedule>
    <run><model>module/observer::sendReviewsEmail</model></run>
</send_reviews_email>
</jobs>
 </crontab>
 <frontend>
   <routers>
     <module>
        <use>standard</use>
        <args>
            <module>Namespace_Module</module>
            <frontName>module</frontName>
        </args>
      </module>
    </routers>
  </frontend>       
</config>

这是我的mysql4-install-0.1.0.php

<?php
  $installer = $this;
  $installer->startSetup();
  $installer->run("
  -- DROP TABLE IF EXISTS {$this->getTable('cronemails')};
  CREATE TABLE {$this->getTable('cronemails')} (
  `cronemails_id` int(11) unsigned NOT NULL auto_increment,
  `order_id` varchar(255) default '',
  `order_email_id` varchar(255) default '',
  `review_request` smallint(6) NOT NULL default '0',
  `coupon_sent` smallint(6) NOT NULL default '0',
  PRIMARY KEY (`cronemails_id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    ");
  $installer->endSetup();

2 个答案:

答案 0 :(得分:1)

  1. 检查您的模块是否已在core_resource表中。如果是,则从那里删除它并再试一次。

  2. 检查config.xml中的模块版本是否等于或大于0.1.0

答案 1 :(得分:0)

尝试将版本号更改为0.1.1并将文件重命名为`mysql4-upgrade-0.1.0-0.1.1.php。
虽然你有1.6.1.0但我不确定这是否可行:如果没有,请尝试1.6.1.0-1.6.1.1