我创建了一个自定义模块,其中包含一个自定义数据库表来存储/获取值。我遵循了以下目录结构,但我的表仍未显示在数据库中。关于为什么
的任何想法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();
答案 0 :(得分:1)
检查您的模块是否已在core_resource表中。如果是,则从那里删除它并再试一次。
检查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