Бывают такие случаи, когда при загрузке файла в ноду, может произойти обрыв соединения с Интернетом и ноду сохранить уже будет невозможно. Сами файлы не пропадут, они останутся на сервере, а записи о них будут храниться в БД. Эти файлы будут «призраками». Они будут числиться, но использовать их уже не получится.
Для того, чтобы удалить записи этих файлов, необходимо выполнить следующий SQL-запрос:
1 2 3 4 5 |
SELECT fm.* FROM file_managed AS fm LEFT OUTER JOIN file_usage AS fu ON ( fm.fid = fu.fid ) LEFT OUTER JOIN node AS n ON ( fu.id = n.nid ) WHERE ( fu.TYPE = 'node' OR fu.TYPE IS NULL ) AND n.nid IS NULL; |
Запрос отобразит список записей о файлах, которые в данный момент нигде не используются. Их можно удалить, тем самым очистив базу данных от лишних записей.
В таблице block базы данных находится информация о блоках, их расположение на странице и т.п. Модули при установки могут добавлять свои блоки, но проблема в том, что при удалении этих модулей информация о добавленных блоках продолжает сохраняться в этой таблице.
Ниже идут SQL-запросы, которые помогут очистить таблицу block от блоков уже удалённых модулей или просто от неиспользуемых блоков.
Удаление блоков, добавленные модулем MODULE_NAME
1 |
<span class="hljs-keyword">DELETE</span> <span class="hljs-keyword">FROM</span> block <span class="hljs-keyword">WHERE</span> <span class="hljs-keyword">module</span> = <span class="hljs-string">'MODULE_NAME'</span>; |
Удаление блоков с дельтой BLOCK_DELTA, добавленные модулем MODULE_NAME
1 |
DELETE FROM block WHERE module = 'MODULE_NAME' AND delta = 'BLOCK_DELTA'; |
Удаление блоков с заголовком BLOCK_TITLE и добавленные модулем MODULE_NAME
1 |
DELETE FROM block WHERE module = 'MODULE_NAME' AND title = 'BLOCK_TITLE'; |
Полное удаление всего, кроме блоков, установленных в теме THEME и bartik
1 |
DELETE FROM block WHERE NOT(theme='THEME_NAME' OR theme='bartik'); |