我最近通过脚本创建了大约 700 个属性,所有属性在后端看起来都很好。但是当我重新索引时,我收到以下错误:
带有消息“SQLSTATE [42S22] 的异常“PDOException”:未找到列:1054 /lib/Zend/Db/Statement/Pdo.php:228 中“字段列表”中的未知列“e.additional_information_s”
注意:此属性存在于数据库(eav_attribtue)表中。
我非常感谢您的建议。
以下将重新索引每个索引。
for ($i = 1; $i <= 9; $i++) {
$process = Mage::getModel('index/process')->load($i);
$process->reindexAll();
}
您还可以使用 Magento 集合模型来加载每个索引,而不是在 for 循环中对 id 进行硬编码。
/* @var $indexCollection Mage_Index_Model_Resource_Process_Collection */
$indexCollection = Mage::getModel('index/process')->getCollection();
foreach ($indexCollection as $index) {
/* @var $index Mage_Index_Model_Process */
$index->reindexAll();
}
但是,如果您只想重新索引 id 为 2 的价格
$process = Mage::getModel('index/process')->load(2);
$process->reindexAll();
您还可以按如下方式调用函数 getProcessByCode:
$process = Mage::getModel('index/indexer')->getProcessByCode('catalog_product_price');
$process->reindexAll();