caching - 如何清除 Magento 的数据库架构缓存?

标签 caching magento

我正在开发一个 Magento 扩展,它向数据库引入了一个新表。每当我发布对表架构进行修改的扩展的新版本时,我发现用户被迫手动单击“系统”>“缓存管理”下的“刷新缓存存储”按钮。

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

可能有人知道如何编写代码来清除表架构的缓存,并尽可能具体地执行此操作 - 使不相关的缓存数据不受​​损害?

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

最佳答案

这是我能想到的:

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

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

请注意,它将删除所有表的这些条目。没有简单的方法可以清除特定表的缓存架构并保持其余部分不变。

关于caching - 如何清除 Magento 的数据库架构缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6094101/

相关文章:

php - 从缓存中获取图像 MAGENTO

ruby-on-rails - 在初始化程序中设置 cache_store

php - 如何在 Magento 中翻译产品名称和信息

elasticsearch - elasticsearch窗口 "localhost:9200"的用户名或密码是什么

c# - 什么更快?缓存大量对象或通过 IEnumerable 访问它们?

c# - 如何获取 HttpRuntime.Cache 对象的缓存项优先级?

ruby-on-rails - 如何使用acts_as_taggable_on 缓存标签?

php - Magento 管理屏幕添加新的审核按钮不起作用并生成 404 错误

html - 将 magento 可配置产品选项下拉列表转换为可选链接或单选按钮

php - 无法打开 Magento 管理页面