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