Можно ли безопасно очистить какой-либо кэш*?


Иногда при перемещении базы данных она может быть слишком большой. Можно ли очистить любую из таблиц с префиксами "cache_" без проблем?

Author: WestieUK, 2011-07-05

4 answers

За одним исключением, да. Этим исключением является cache_form. Это на самом деле не таблица кэша, но содержит временную информацию $form_state о формах, отображаемых в данный момент на вашем сайте. Очистка этой таблицы приведет к аннулированию этих форм, и когда пользователь затем попытается отправить эту форму, он получит сообщение об ошибке и должен будет снова заполнить эту форму.

Обратите внимание, что drush sql-dump и Резервное копирование и перенос автоматически исключают содержимое этих и других таблиц при создании базы данных дамп с ними вместо mysqldump или phpmyadmin.

 14
Author: Berdir, 2011-07-05 15:01:26

В этом списке есть "ложный друг". cache_form не является таблицей кэша, и ее удаление приведет к аннулированию всех форм, активных на сайте в данный момент.

Я также не вижу причины, по которой вы использовали бы phpmyadmin для этого. Он неуклюж и подвержен ошибкам. "drush cc all" - твой друг:)

 4
Author: Bojan Zivanovic, 2012-12-20 10:11:23

Целью таблиц кэша является сохранение вычисленных значений. Когда модуль вызывает cache_get() и возвращает пустое значение, он просто выполняет код для получения обратно кэшированных значений.
Все известные мне модули автоматически выполняют код, чтобы получить значение, которое они ожидали в кэше, если кэш пуст; очистка кэша не вызывает никаких проблем у модулей, его использующих.

 3
Author: kiamlaluno, 2011-07-05 15:20:36

Я делал это много раз и не нашел никаких проблем, делая это.

Важное замечание - попробуйте очистить все таблицы кэша сразу. Это предотвратит использование Drupal недопустимых данных кэша.

 3
Author: j2r, 2012-12-20 09:40:01