これが問題のようです(現在同じ問題があります)、次の2行:
INDEX `IDX_ALPHANUM_INFO_TEXT_ATTRIBUTE_ID_VALUE` (`attribute_id`, `value`),
INDEX `IDX_ALPHANUM_INFO_TEXT_ENTITY_TYPE_ID_VALUE` (`entity_type_id`, `value`),
数値をそのようにリストする必要があります:
INDEX `IDX_ALPHANUM_INFO_TEXT_ATTRIBUTE_ID_VALUE` (`attribute_id`, `value`(255)),
INDEX `IDX_ALPHANUM_INFO_TEXT_ENTITY_TYPE_ID_VALUE` (`entity_type_id`, `value`(255)),
それを差し込むと、動作します。トリックはそれを正しく挿入させることです。簡潔にするために、関数全体を投稿するのではなく、Mage_Eav_Model_Entity_Setup::createEntityTables
に投稿します。 約1341行目で、次の行を変更する必要があります。
->addIndex($this->getIdxName($eavTableName, array('attribute_id', 'value')),
array('attribute_id', 'value'))
->addIndex($this->getIdxName($eavTableName, array('entity_type_id', 'value')),
array('entity_type_id', 'value'))
次のように:
->addIndex($this->getIdxName($eavTableName, array('attribute_id', 'value')),
array('attribute_id', $type == 'text' ? array('name' => 'value', 'size' => 255) : 'value'))
->addIndex($this->getIdxName($eavTableName, array('entity_type_id', 'value')),
array('entity_type_id', $type == 'text' ? array('name' => 'value', 'size' => 255) : 'value'))
サイズの値を何に設定すればよいかはよくわかりませんが、64kに設定すると、そもそもインデックス作成の目的が果たせなくなると思います。うまくいけば、私がチャイムを鳴らすよりもSQLについてもう少し知っている人がいます。
お役に立てば幸いです。