如何在magento中为自定义模块创建表?

时间:2013-02-01 13:49:28

标签: magento magento-1.7

我是magento的新人。我需要在Magento中创建自己的模块(或)扩展。在我的模块中,无法在magento表中创建表。我正在使用此代码。

File:/app/code/local/com_name/module_name/sql/module_setup/mysql4_install-0.1.0.php
 $installer = $this;
  $installer->startSetup();

  $installer->run("
    DROP TABLE IF EXISTS {$this->getTable('th_tweet')};

    CREATE TABLE {$this->getTable('th_tweet')} (
      `tweet_id` int(11) NOT NULL AUTO_INCREMENT,
      `updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `twitter_id` bigint(20) NOT NULL,
      `text` text NOT NULL,
      PRIMARY KEY (`tweet_id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1
  ");

  $installer->endSetup();

然后,可以像这样调用config.xml文件,

<models>
        <tweet>
            <class>TechAndHouse_Tweet_Model</class>
            <resourceModel>tweet_mysql4</resourceModel>
        </tweet>

            <tweet_mysql4>
                  <class>TechAndHouse_Tweet_Model_Mysql4</class>
                  <entities>
                        <tweet>
                              <table>th_tweet</table>
                        </tweet>
                  </entities>
            </tweet_mysql4>
      </models>

我在管理面板中创建标签,前端块已创建,但我无法为自定义模块创建表格。 如何为我的自定义模块创建表?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

将资源部分添加到config.xml,全局

<global>
    ...
    <resources>
        <tweet_setup>
            <setup>
                <module>TechAndHouse_Tweet</module>
            </setup>
            <connection>
                <use>core_setup</use>
            </connection>
        </tweet_setup>
        <tweet_write>
            <connection>
                <use>core_write</use>
            </connection>
        </tweet_write>
        <tweet_read>
            <connection>
                <use>core_read</use>
            </connection>
        </tweet_read>
    </resources>
    ...
</global>