如何清除Magento对其DB Schema的缓存?

uri*_*rig 7 caching magento

我正在开发一个Magento扩展,它向DB引入了一个新表.每当我发布一个新版本的扩展来修改表模式时,我发现用户被迫手动点击系统>缓存管理下的"刷新缓存存储"按钮.

我希望我的扩展程序在安装后自动清除缓存.我知道如何以编程方式执行与按钮相同的操作,但我不愿意,因为这会删除整个Magento缓存文件夹并对性能产生负面影响.

任何人都可能知道如何编写代码来清除我的表模式的缓存并尽可能具体地这样做 - 让不相关的缓存数据不受​​伤害?

更新:我在这里找到了包含我的表格架构缓存的文件:/var/cache/mage-f/mage---d07_DB_PDO_MYSQL_DDL_<table_name>_1d.现在我如何在代码中定位它?:)

uri*_*rig 9

这就是我能想到的:

$app = Mage::app();
if ($app != null)
{
    $cache = $app->getCache();
    if ($cache != null)
    {
        $cache->clean('matchingTag', array('DB_PDO_MYSQL_DDL'));
    }
}
Run Code Online (Sandbox Code Playgroud)

这将仅删除包含有关数据库模式信息的缓存条目和元数据文件.

请注意,它将删除所有表的这些条目.没有简单的方法来清除特定表的缓存模式,并保持其余部分不受影响.