Удаление файлов в Drupal

У вебмастеров, использующих CMS Drupal 8, 9 и 10 часто возникает вопрос – как удалить картинку или другой файл, загруженные на сайте через интерфейс CMS?

Действительно, в интерфейсе CMS Drupal даже нет функции для удаления файлов. Файл можно удалить с хостинга физически, но информация об этом файле всё равно остаётся в базе данных, и в интерфейсе CMS файл продолжает висеть, как будто его не удаляли.

Многих вебмастеров такое положение дел не устраеваит, поскольку, если сайт живой и на нём постоянно обновляется информация, неиспользуемые картинки и другие файлы со временем очень сильно загромождают интерфейс панели управления сайтом и в загруженных файлах становится сложнее ориентироваться. Кроме этого начинает увеличиваться размер базы данных.

Многие «знатоки» советуют использовать для удаления файлов специальный модуль «Fancy File Delete». Я тоже пробовал пользоваться этим модулем, однако после его установки и удаления неиспользуемых файлов, в интерфейсе Drupal появлялись ошибки. В частности, в интерфейсе панели управления пункты «файлы» и «мультимедиа» вообще пропадали. Вместо них появлялась ошибка, устранить которую не представлялось возможным даже после удаления модуля «Fancy File Delete». Спасало только восстановление сайта из резервной копии. В последней версии модуля «Fancy File Delete» на Drupal 9 ошибки вроде устранены, но пользоваться этим модулем очень неудобно, в нём нет даже поиска нужного файла по названию. И если файлов очень много, приходится пролистывать весь список вручную.

Некоторые мастера советовали залезть в базу данных и удалить информацию о файлах непосредственно из базы данных. Однако никаких внятных инструкций и советов во всём Интернете на этот счёт я так и не нашёл. Все советы этих мастеров сводились примерно к одному: «Пойди туда, не знаю куда, сделай то, не знаю что, но будь при этом очень осторожен, поскольку я сам этого никогда не делал».

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

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

Прежде чем приступить к удалению файлов, рекомендую сделать резервную копию базы данных на случай если удалите что-нибудь не то.

Итак, первым делом надо зайти в web-интерфейс базы данных. Сделать это можно из соответствующего пункта cPanel или ISPmanager. Пункт этот называется «phpMyAdmin».

Первым делом заходим в web-интерфейс базы данных. Сделать это можно из соответствующего пункта cPanel или ISPmanager. Пункт этот называется «phpMyAdmin».
Введите имя пользователя и пароль для нужной базы данных, если потребуется.

Если вы используете ISPmanager, то попасть в интерфейс базы данных можно так же щёлкнув левой кнопкой мышки по выпадающему меню нужной базы данных. Далее в выпадающем меню выбрать пункт «Web интерфейс БД». В последнем варианте от вас даже не потребуется вводить имя пользователя и пароль для соответствующей базы данных.

В ISPmanager, попасть в интерфейс базы данных можно так же щёлкнув левой кнопкой мышки по выпадающему меню нужной базы данных. Далее в выпадающем меню выбрать пункт «Web интерфейс БД».
 

В интерфейсе базы данных вам необходимо найти таблицу «file_managed»

Нужная вам таблица может иметь префикс, например, «drty_» и выглядеть так: «drty_file_managed» Префикс может быть любой другой, зависит это от того, какой вы добавили префикс при создании базы данных. Префикса так же может не быть вообще. В любом случает ищите «file_managed».

В интерфейсе базы данных вам необходимо найти таблицу «file_managed»
Нужная вам таблица может иметь префикс, например, «drty_» и выглядеть так: «drty_file_managed» Префикс может быть любой другой, зависит это от того, какой вы добавили префикс при создании базы данных. Префикса так же может не быть вообще. В любом случает ищите «file_managed».

Откройте таблицу «file_managed» и найдите в ней по названию файл, который хотите удалить.

Файлы можно удалять по одному, нажимая в его строчке кнопку «Удалить». Можно так же удалить сразу несколько файлов, отметив их галочками, после чего нажав внизу таблицы кнопку «Удалить».

Откройте таблицу «file_managed» и найдите в ней по названию файл, который хотите удалить.
Можно удалить сразу несколько файлов, отметив их галочками, после чего нажав внизу таблицы кнопку «Удалить».

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

После того как вы удалили файлы, зайдите в панель управления сайтом, очистите кэш. После очистки кэша файлы должны пропасть из панели управления сайта.

Таким образом мы удалили ненужные файлы из базы данных без установки дополнительных модулей.

Разумеется, что после удаления файлов из базы данных, их надо будет удалить с хостинга физически. Сделать это можно в менеджере файлов который есть как в ISPmanager так и в cPanel, ну или через FTP-менеджер, если у вас нет ни того, ни другого.

Добавить комментарий