1

我尝试升级我的自定义 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();  
?>
4

3 回答 3

6

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

于 2013-02-13T12:34:39.073 回答
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();
于 2013-03-11T01:30:20.397 回答
1

确保满足 3 个条件:

  1. 您的模块版本号。core_resource 表中不存在。
  2. 你有一个版本号。在模块的 etc/config.xml 文件中定义。
  3. 您已经使用 yourmodule_setup 的标记名称为模块的设置/升级定义了一个全局资源
于 2013-10-02T09:44:32.430 回答