vis*_*ant 3 url rewrite magento reindex
我想通过升级脚本截断magento core_url_rewrite表和reindex目录url重写.该表被截断但重建索引目录URL无法正常工作.任何帮助请..
//truncate magento core_url_rewrite table
$installer = $this;
$installer->startSetup();
$installer->run(
"TRUNCATE TABLE `{$this->getTable('core_url_rewrite')}` "
);
$installer->endSetup();
// reindex catalog url rewrites
$indexCatUrl = Mage::getSingleton('index/indexer')->getProcessByCode('catalog_url');
try {
$indexCatUrl->reindexAll();
} catch(Exception $e) {
$this->log('Error Reindex all ' . $e);
throw ($e);
}
Run Code Online (Sandbox Code Playgroud)
简短版本是应使用数据设置脚本而不是sql脚本来执行reindex.为了理解原因,我们需要了解Magento的自助程序......
Magento有两种类型的设置脚本.有sql脚本和数据脚本.sql脚本位于"sql/nameofsetupresource_setup /"文件夹中,并且在Magento的引导过程中相对较早地执行.SQL脚本旨在用于架构更改等,而不用于数据操作.当Magento执行sql脚本时,它会以特殊的"更新模式"执行,并且各种API调用(尤其是围绕多商店功能)不起作用(或者在此模式下无法正常工作).
一旦所有的sql脚本和一些Magento引导过程发生,就会运行第二批安装脚本."data"脚本位于"data/nameofsetupresource_setup"中,并命名为"data-upgrade-0.1.0-0.1.1.php"而不是"mysql4-upgrade-0.1.0-0.1.1.php".一旦我们使用sql脚本获得最新的模式,这些"数据"脚本将用于在我们的数据库中插入/操作数据.数据脚本不在更新模式下执行,Magento核心已完全初始化并可供使用.
所有Magento索引器都关注为您的安装中的每个"商店"构建正确的数据.即使您没有在Magento中使用多商店功能,索引器也需要查找可用的商店代码等,才能正确完成工作.尝试在sql脚本中重新索引时,存储数据不可用,但在数据脚本中运行时,索引器可以获取所需的信息并正常工作.
有关数据脚本的更多信息,Inchoo的这篇博文应引导您朝着正确的方向前进.
| 归档时间: |
|
| 查看次数: |
1134 次 |
| 最近记录: |