Как очистить кэширование Magento его схемы БД? - PullRequest
7 голосов
/ 23 мая 2011

Я разрабатываю расширение Magento, которое вводит новую таблицу в БД. Всякий раз, когда я выпускаю новую версию расширения, которое вносит изменения в схему таблицы, я обнаруживаю, что пользователи вынуждены вручную нажимать кнопку «Flush Cache Storage» в разделе «Система»> «Управление кэшем».

Я бы хотел, чтобы мое расширение автоматически очищало кеш после установки. Я знаю, как сделать то же самое, что и кнопка, программно, но я бы предпочел этого не делать, потому что это удаляет всю папку кэша Magento и отрицательно влияет на производительность.

Может кто-нибудь знает, как написать код, который очистит кеширование схемы моей таблицы и сделает это как можно точнее, оставив несвязанные кэшированные данные без повреждений?

Обновление: я нашел файл, содержащий кеш схемы моей таблицы: /var/cache/mage-f/mage---d07_DB_PDO_MYSQL_DDL_<table_name>_1d. Теперь, как мне нацелить это в коде? :)

1 Ответ

9 голосов
/ 23 мая 2011

Вот что я смог придумать:

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

Это удалит только записи кэша и файлы метаданных, которые содержат информацию о схемах БД.

Обратите внимание, что эти записи будут удалены для всех таблиц.Нет простого способа очистить кэшированную схему конкретной таблицы и оставить остальные нетронутыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...