2011-12-20 60 views
1

我創建了一個自定義模塊,其中包含自定義數據庫表來存儲/提取值。我遵循了下面的目錄結構,但仍然沒有在數據庫中顯示我的表。任何想法,爲什麼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

嘗試改變版本號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
  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

相關問題