Magento自定义模块SQL升级不起作用

时间:2013-02-13 11:38:29

标签: php sql magento

我尝试升级我的自定义Magento模块但由于某种原因它无法正常工作。

我的模块配置:

<?xml version="1.0"?>
<config>
    <modules>
        <MVE_CategoryAttribute>
            <version>0.1.1</version>
        </MVE_CategoryAttribute>
    </modules>
    <global>
            <resources>
                <categoryattribute_setup>
                  <setup>
                    <module>MVE_CategoryAttribute</module>
                    <class>Mage_Eav_Model_Entity_Setup</class>
                  </setup>
                  <connection>
                    <use>default_setup</use>
                  </connection>
                </categoryattribute_setup>
            </resources>
    </global>
</config>

安装脚本(mysql4-install-0.1.0.php):

<?php

$this->startSetup();

$this->addAttribute('catalog_category', 'imagetext', array(
    'group'         => 'General Information',
    'input'         => 'textarea',
    'type'          => 'varchar',
    'label'         => 'Tekst op afbeelding',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'user_defined' => 1,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
));

$this->endSetup();

?>

升级脚本(mysql4-upgrade-0.1.0-0.1.1.php):

<?php   
$this->startSetup();     
$this->updateAttribute('catalog_category', 'imagetext', 'global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);  
$this->endSetup();  
?>

3 个答案:

答案 0 :(得分:6)

检查core_resource中模块的版本号。如果它仍为0.1.0,则清除xml缓存并重新启动页面,它应该运行。如果它已经是0.1.1并且您知道尚未应用数据库更改,请将值更改回0.1.0,清除xml缓存并刷新页面。

答案 1 :(得分:2)

试试这个:

<?php
$installer = $this;
$installer->startSetup();
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$setup->updateAttribute('catalog_category', 'imagetext', 'is_global', Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE);
$installer->endSetup();

答案 2 :(得分:1)

确保满足3个条件:

  1. 您的模块版本号。在core_resource表中不存在。
  2. 你有一个版本号。在模块的etc / config.xml文件中定义。
  3. 您已使用标记名yourmodule_setup
  4. 为模块的设置/升级定义了全局资源