Php 运行一次magento更新脚本以创建属性

Php 运行一次magento更新脚本以创建属性,php,mysql,magento,Php,Mysql,Magento,在Magento后端的管理目录类别视图中使用缩略图上载时出现问题。因为我更新到1.9.3.1,所以我不能再上传图像了。“上载”按钮出现,但传输的数据仍不显示在后端 我发现,模块xml_connect负责创建缩略图属性(我不清楚为什么这个模块负责创建缩略图),否则传输的缩略图数据显然将被丢弃 在模块的install-1.6.0.0.php中,我发现(除其他外)以下内容 $installer->addAttribute('catalog_category', 'thumbnail', arra

在Magento后端的管理目录类别视图中使用缩略图上载时出现问题。因为我更新到1.9.3.1,所以我不能再上传图像了。“上载”按钮出现,但传输的数据仍不显示在后端

我发现,模块xml_connect负责创建缩略图属性(我不清楚为什么这个模块负责创建缩略图),否则传输的缩略图数据显然将被丢弃

在模块的install-1.6.0.0.php中,我发现(除其他外)以下内容

$installer->addAttribute('catalog_category', 'thumbnail', array(
   'type' => 'varchar',
   'label' => 'Thumbnail Image',
   'input' => 'image',
   'backend' => 'catalog/category_attribute_backend_image',
   'required' => false,
   'sort_order' => 4,
   'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
   'group'=> 'General Information'
));
如果运行此操作,则图像上载工作正常

就我而言,这有点特别。在早期的Magento版本中,似乎已经启用了xml_connect模块,因为我的数据库中有xml_connect表。在当前版本中,xml_connect未启用,因此我尝试删除xml_connect的模块条目以重新运行安装脚本。但在sql更新脚本上失败,因为表已经存在。。。如果我删除了所有xml_connect表,它可以正常工作,并且可以上传缩略图

实际上,我通过重新激活模块并删除之前的表得到了一个解决方案。但事实上,在一个生产系统上这样做对我来说并不实际

我发现另一个页面显示了一个解决方案,它通过手动收集属性id来处理几个SQL查询。。。我认为这也很容易出错

所以我的问题是。有没有一种方法可以在没有具体模块上下文的情况下运行“一次”上面的installer->addAttribute代码?是否有另一种在数据库中获取缩略图属性的好方法


谢谢

在Magento中,类别通常没有缩略图,当引入xml_connect模块时,需要并添加一个缩略图(使用该模块,而不是它自己的功能)。为了解决您的问题,通常只需重置模块/db版本(即它自己的db表中的元数据,Magerun支持这些操作)并再次运行升级即可。或者,您可以自己创建一个缩略图模块(如果还没有可用的缩略图模块,我会假设如果xml_connect最终被禁用,其他人也会有这个问题)。通常,类别在Magento中没有缩略图,当引入xml_connect模块时,需要并添加一个缩略图(与该模块一起使用,而不是它自己的功能)。为了解决您的问题,通常只需重置模块/db版本(即它自己的db表中的元数据,Magerun支持这些操作)并再次运行升级即可。或者,您可以自己创建一个缩略图模块(如果还没有可用的缩略图模块,我假设如果xml_connect最终被禁用,其他人也会遇到这个问题)。