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

问题描述:

我创建了一个自定义模块,其中包含自定义数据库表来存储/提取值。我遵循了下面的目录结构,但仍然没有在数据库中显示我的表。任何想法,为什么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安装-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(); 
+0

您是否配置了config.xml中的设置? – OSdave 2011-12-20 13:54:14

+0

是的,我有。但它没有显示在core_resources表中。 – ivn 2011-12-20 14:14:03

+0

你是否在意粘贴在这里,以便我们检查是否没有错误 – OSdave 2011-12-20 14:58:13

尝试改变版本号0.1.1和你的文件重命名为'mysql4升级,0.1.0 -0.1.1.php。
虽然你有1.6.1.0我不知道这是否会工作:如果它不工作,请尝试1.6.1.0-1.6.1.1

+0

Sry基因已经离开了谈话中途,由于失去了互联网连接。我想问你,如果sql/module_Setup文件夹将只包含一个文件即。 mysql4-upgrade-0.1.0-0.1.1.php或.02.php? – ivn 2011-12-21 09:34:50

+0

嗨,只是想让你知道,你的解决方案工作! :)我将config.xml更改为0.0.2,并将该文件重命名为mysql4-upgrade-0.0.1-0.02.php。有效。我现在可以在core_resource表中看到我的模块。那么这是否意味着我现在可以使用Magento方法保存并获取数据到这个表格。 再次感谢@Dick Laurent。你们帮助很大!真的很感激它。 – ivn 2011-12-21 10:05:24

+0

由于我实际上看不到一个表,但只是我的模块在core_resource表中的条目,我可以不使用这些方法来设置和从我的自定义表中获取数据吗? – ivn 2011-12-21 14:29:54

  1. 检查您的模块已经在core_resource表中。如果是,则从该处删除并重试。

  2. 检查你的模块版本config.xml中等于或大于然后0.1.0

+0

它不在我的core_resource表中。并且我将模块版本从0.1.0更改为1.6.1.0 ..仍然没有显示 – ivn 2011-12-20 12:51:42

+0

您现在的模块版本是什么,以及mysql4-install-X.X.X.php中的版本是什么? – 2011-12-20 12:53:10

+0

我的模块版本是1.6.1.0n mysql4-install-0.1.0.php。我应该将其更改为mysql4-install-1.6.1.php吗? – ivn 2011-12-20 13:01:02