Можно ли безопасно очистить какой-либо кэш*?
Иногда при перемещении базы данных она может быть слишком большой. Можно ли очистить любую из таблиц с префиксами "cache_" без проблем?
4 answers
За одним исключением, да. Этим исключением является cache_form
. Это на самом деле не таблица кэша, но содержит временную информацию $form_state о формах, отображаемых в данный момент на вашем сайте. Очистка этой таблицы приведет к аннулированию этих форм, и когда пользователь затем попытается отправить эту форму, он получит сообщение об ошибке и должен будет снова заполнить эту форму.
Обратите внимание, что drush sql-dump
и Резервное копирование и перенос автоматически исключают содержимое этих и других таблиц при создании базы данных дамп с ними вместо mysqldump или phpmyadmin.
В этом списке есть "ложный друг". cache_form не является таблицей кэша, и ее удаление приведет к аннулированию всех форм, активных на сайте в данный момент.
Я также не вижу причины, по которой вы использовали бы phpmyadmin для этого. Он неуклюж и подвержен ошибкам. "drush cc all" - твой друг:)
Целью таблиц кэша является сохранение вычисленных значений. Когда модуль вызывает cache_get() и возвращает пустое значение, он просто выполняет код для получения обратно кэшированных значений.
Все известные мне модули автоматически выполняют код, чтобы получить значение, которое они ожидали в кэше, если кэш пуст; очистка кэша не вызывает никаких проблем у модулей, его использующих.
Я делал это много раз и не нашел никаких проблем, делая это.
Важное замечание - попробуйте очистить все таблицы кэша сразу. Это предотвратит использование Drupal недопустимых данных кэша.