添加列脚本在Magento中无法正常工作

时间:2015-01-08 12:53:23

标签: php mysql magento

我在Magento sql更新表中遇到了一些麻烦。我创建扩展,我想在现有表'customer_group'中添加一些新列。

<modules>
    <Module_Name>
        <module>1.0.0</module>
    </Module_Name>
</modules>

<global>
    <models>
        <module_name>
            <class>Module_Name_Model</class>
            <resourceModel>module_name_resource</resourceModel>
        </module_name>

        <module_name_resource>
            <class>Module_Name_Model_Resource</class>
        </module_name_resource>
    </models>
    <resources>
        <module_name_setup>
            <setup>
                <module>Module_Name</module>
                <class>Module_Name_Model_Resource_Setup</class>
            </setup>
        </module_name_setup>
    </resources>
</global>

在sql / module_name_setup / mysql4-install-1.0.0.php我有这段代码:

$installer = $this;
$connection = $installer->getConnection();

$installer->startSetup();

$installer->getConnection()
    ->addColumn($installer->getTable('customer/customer_group'), 'column_one', array(
        'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
        'NULLABLE' => false,
        'COMMENT' => 'Column One'
    ))
    ->addColumn($installer->getTable('customer/customer_group'), 'column_two', array(
        'TYPE' => Varien_Db_Ddl_Table::TYPE_TEXT,
        'NULLABLE' => false,
        'COMMENT' => 'Column Two'
    ));

$installer->endSetup();

但是当我刷新Magento前端页面时,我没有在 core_resources 表中看到任何更改,并且在 customer_group 中这两列不存在。 我做错了什么? 谢谢!

2 个答案:

答案 0 :(得分:1)

对于它的价值,我就是这样做的安装脚本:

将安装脚本放在:

Company/Module/sql/your_module_setup/install-1.0.0.0.php

在模块的etc / config.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Company_Module>
            <version>1.0.0.0</version>
        </Company_Module>
    </modules>
    <global>
        <resources>
            <your_module_setup>
                <setup>
                    <module>Company_Module</module>
                    <class>Company_Module_Model_Resource_Setup</class>
                </setup>
            </your_module_setup>
        </resources>
    </global>
</config>

然后创建文件Company / Module / Model / Resource / Setup.php:

<?php
class Company_Module_Model_Resource_Setup extends Mage_Sales_Model_Resource_Setup
{
}

答案 1 :(得分:0)

我已经解决了这个问题。我忘了在 app / etc / Module_Name.xml 中设置版本,它应该是

<modules>
    <Module_Name>
        <active>true</active>
        <codePool>local</codePool>
        <depends>
            <Mage_Shipping/>
        </depends>
        <version>1.0.0</version>
    </Module_Name>
</modules>

并且 config.xml 版本也应该设置