我正在开发一个Magento扩展,它为数据库引入了一个新表。每当我发布一个新版本的扩展来修改表模式时,我发现用户被迫手动点击System>下的“Flush Cache Storage”按钮。缓存管理。
我希望我的扩展程序在安装后自动清除缓存。我知道如何以编程方式执行与按钮相同的操作,但我不愿意,因为这会删除整个Magento缓存文件夹并对性能产生负面影响。
可能有人知道如何编写代码来清除表格模式的缓存并尽可能具体地进行 - 保持不相关的缓存数据不受伤害?
更新:我在这里找到了包含我的表格架构缓存的文件:/var/cache/mage-f/mage---d07_DB_PDO_MYSQL_DDL_<table_name>_1d
。现在我如何在代码中定位它? :)
答案 0 :(得分:9)
这是我能够提出的:
$app = Mage::app();
if ($app != null)
{
$cache = $app->getCache();
if ($cache != null)
{
$cache->clean('matchingTag', array('DB_PDO_MYSQL_DDL'));
}
}
这将仅删除包含有关数据库架构信息的缓存条目和元数据文件。
请注意,它将删除所有表的这些条目。没有简单的方法可以清除特定表的缓存模式,并保持其余部分不受影响。