gpt4 book ai didi

Magento 升级脚本 - 重新索引目录 Url 重写

转载 作者:行者123 更新时间:2023-12-01 11:41:40 24 4
gpt4 key购买 nike

我想截断 magento core_url_rewrite 表并通过升级脚本重新索引目录 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);
}

最佳答案

简短的版本是重新索引应该使用数据设置脚本而不是 sql 脚本来执行。要理解其中的原因,我们需要稍微了解一下 Magento 的引导过程...

Magento 有两种类型的设置脚本。有sql脚本和数据脚本。 sql 脚本位于“sql/nameofsetupresource_setup/”文件夹中,并且在 Magento 的引导过程中相对较早地执行。 SQL 脚本旨在用于模式更改等,而不是用于数据操作。当 Magento 执行 sql 脚本时,它会在特殊的“更新模式”下执行,并且各种 API 调用(尤其是围绕多商店功能)不起作用(或在此模式下无法正常工作)。

一旦所有的 sql 脚本和一些更多的 Magento Bootstrap 发生,然后运行第二批设置脚本。 “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 脚本中重建索引时,存储数据不可用,但在数据脚本中运行时,索引器可以获得所需的信息并正常工作。

有关数据脚本的更多信息,this blog post from Inchoo应该会引导您朝着正确的方向前进。

关于Magento 升级脚本 - 重新索引目录 Url 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com