0

我在类别实体中添加了很多自定义属性,现在当我尝试重新索引时出现错误

SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

我知道这意味着平面表太大,而且确实有很多列。我不需要该表中的自定义属性,因此我可以删除它们,但我该怎么做呢?我发现如果我将 filterable 和可比性设置为 false 他们不应该在平面表中。任何帮助将不胜感激

public function getDefaultEntities()
{
    return array(
        'catalog_category' => array(
            'entity_model'      => 'catalog/category',
            'attribute_model'   => 'catalog/resource_eav_attribute',
            'additional_attribute_table' => 'catalog/eav_attribute',
            'entity_attribute_collection' => 'catalog/category_attribute_collection',
            'table'             => 'catalog/category',
            'attributes'        => array(
                'cat_type' => array(
                    'group'             => 'General',
                    'label'             => 'Category Type',
                    'type'              => 'int',
                    'input'             => 'select',
                    'default'           => '0',
                    'class'             => '',
                    'backend'           => '',
                    'frontend'          => '',
                    'source'            => 'eav/entity_attribute_source_cattype',
                    'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
                    'visible'           => true,
                    'required'          => false,
                    'user_defined'      => false,
                    'searchable'        => false,
                    'filterable'        => false,
                    'comparable'        => false,
                    'visible_on_front'  => false,
                    'visible_in_advanced_search' => false,
                    'unique'            => false
                ),

编辑:

我已经删除了属性并且它可以工作,然后我再次运行安装脚本,所有这些都将可过滤和可比较设置为 false,就像我在下面发布的示例一样,它再次向我显示错误,我错过了什么?

编辑:

我检查了平面类别表,我看到所有属性都添加了它们。那么可过滤和可比较仅适用于产品属性?我认为它们对于类别产品将是相同的值。

无论如何要从该表中排除我的属性吗?我可以排除他们修改创建表的文件,显然是在我的本地文件夹中,但我想知道哪种方法是干净的?

4

1 回答 1

0

检查 eav_attribute 表和名为 used_in_product_listing 的列将其设置为 0 或 false,并且不应将其添加到类别产品平面表中。

于 2013-03-01T16:04:29.667 回答