以magento方式创建表

时间:2013-11-17 00:06:01

标签: mysql magento magento-1.7

我正在尝试学习如何使用书中的示例创建表但没有成功。模块在那里,但表没有创建。我找不到错误,我不知道如何调试它。 有没有办法调试它? 有人能指出我是否以及在哪里做错了什么? 感谢

$installer = $this;
$installer->startSetup();



/**
 * Create Registry Type Table 
 *
 *
 */

$tableName = $installer->getTable('mdg_giftregistry/type');
// Check if the table already exists
if ($installer->getConnection()->isTableExists($tableName) != true) {
    $table = $installer->getConnection()
        ->newTable($installer->getTable('mdg_giftregistry/type'))
        ->addColumn('type_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
            'identity'  => true,
            'unsigned'  => true,
            'nullable'  => false,
            'primary'   => true,
        ), 'Type Id')
        ->addColumn('code', Varien_Db_Ddl_Table::TYPE_TEXT, 25, array(
            'nullable'  => true,
        ), 'Code')
        ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 250, array(
            'nullable'  => true,
        ), 'name')
        ->addColumn('description', Varien_Db_Ddl_Table::TYPE_TEXT, 250, array(
            'nullable'  => true,
        ), 'Description')
        ->addColumn('store_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null,
            array(
                'unsigned' => true,
                'nullable' => false,
                'default' => '0',
            ),
            'Store Id')
        ->addColumn('is_active', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
            'unsigned'  => true,
            'nullable'  => false,
            'default'   => '1',
        ), 'Is Active')
        ->setComment('Magento Developers Guide Type Table');
    $installer->getConnection()->createTable($table);
}
$installer->endSetup();

1 个答案:

答案 0 :(得分:0)

你可以检查几件事:

  • 已启用清除缓存。
  • 检查core_resource表,如果你的module_setup记录是相同的 你的模块版本在config.xml文件中定义,安装 脚本不会运行。您必须删除该条目或运行一个 升级脚本。

如果不是这样,请检查您的设置文件是否被调用。如果没有,那么你需要检查你的config.xml。它应该类似于:

<models>
    <giftregistry>
        <class>Mdg_Giftregistry_Model</class>       
        <resourceModel>giftregistry_resource</resourceModel>
    </giftregistry>
    <giftregistry_resource>
         <class>Mdg_Giftregistry_Model_Resource</class>
         <entities>
               <type>
                    <table>your_table_name</table>
               </type>
         </entities>
    </giftregistry_resource>
</models>    

    <resources>
     <giftregistry_setup>
         <setup>
            <module>Mdg_Giftregistry</module>
            <class>Mage_Core_Model_Resource_Setup</class>
         </setup>
         <connection>
              <use>core_setup</use>
         </connection>
      </giftregistry_setup>
    </resources>

没有测试过,但你的config.xml应该有类似的代码,这里有一个可以帮助的链接,如果还是不行的话 http://www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-6-magento-setup-resources