Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 如何清除Magento';它的数据库模式的缓存是什么?_Caching_Magento - Fatal编程技术网

Caching 如何清除Magento';它的数据库模式的缓存是什么?

Caching 如何清除Magento';它的数据库模式的缓存是什么?,caching,magento,Caching,Magento,我正在开发一个Magento扩展,它向DB引入了一个新表。每当我发布对表模式进行修改的扩展的新版本时,我发现用户必须手动单击System>Cache Management下的“刷新缓存存储”按钮 我想让我的扩展在安装后自动清除缓存。我知道如何以编程方式执行与按钮相同的操作,但我不希望这样做,因为这样会删除整个Magento缓存文件夹,并对性能产生负面影响 有没有人知道如何编写代码来清除表模式的缓存,并尽可能具体地这样做—使无关的缓存数据不受损害 更新:我在这里找到了包含表的架构缓存的文件:/va

我正在开发一个Magento扩展,它向DB引入了一个新表。每当我发布对表模式进行修改的扩展的新版本时,我发现用户必须手动单击System>Cache Management下的“刷新缓存存储”按钮

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

有没有人知道如何编写代码来清除表模式的缓存,并尽可能具体地这样做—使无关的缓存数据不受损害


更新:我在这里找到了包含表的架构缓存的文件:
/var/cache/mage-f/mage--d07\u DB\u PDO\u MYSQL\u DDL\u 1d
。现在我如何在代码中定位它?:)

这就是我能想到的:

$app = Mage::app();
if ($app != null)
{
    $cache = $app->getCache();
    if ($cache != null)
    {
        $cache->clean('matchingTag', array('DB_PDO_MYSQL_DDL'));
    }
}
这将仅删除包含有关DB架构信息的缓存项和元数据文件


请注意,它将删除所有表的这些条目。没有一种简单的方法可以清除特定表的缓存模式,而保持其余模式不变。

需要缓存刷新是不寻常的。您是如何执行这些更改的?我对此感到惊讶,因为我在以前版本的扩展中没有看到它。以下是我升级脚本中的内容:
$installer=$this$安装程序->启动安装程序()$安装程序->运行(“ALTER TABLE'{$this->getTable('my_TABLE')}'添加列'columnX'INT(11)NULL,添加列'columnY'VARCHAR(45)NULL,添加列'columnZ'VARCHAR(45)NULL,在'columnA'之后添加列'columnW'text NULL;”$安装程序->结束设置()我做了什么不寻常的事吗?