[XenForo 2.3.x] Cleanup Database, internal_data

Чистим базу от лишнего перед бекапом:

SQL:
-- =============================================
-- ОЧИСТКА ЛОГОВ И ВРЕМЕННЫХ ДАННЫХ
-- =============================================
TRUNCATE TABLE xf_admin_log;
TRUNCATE TABLE xf_moderator_log;
TRUNCATE TABLE xf_deletion_log;
TRUNCATE TABLE xf_change_log;
TRUNCATE TABLE xf_error_log;
TRUNCATE TABLE xf_failed_job;
TRUNCATE TABLE xf_json_convert_error;
TRUNCATE TABLE xf_captcha_log;
TRUNCATE TABLE xf_login_attempt;
TRUNCATE TABLE xf_spam_cleaner_log;
TRUNCATE TABLE xf_spam_trigger_log;
TRUNCATE TABLE xf_registration_spam_cache;
TRUNCATE TABLE xf_content_spam_cache;
TRUNCATE TABLE xf_email_bounce_log;
TRUNCATE TABLE xf_email_bounce_soft;
TRUNCATE TABLE xf_api_login_token;
TRUNCATE TABLE xf_oauth_code;
TRUNCATE TABLE xf_oauth_refresh_token;
TRUNCATE TABLE xf_oauth_request;
TRUNCATE TABLE xf_oauth_token;
TRUNCATE TABLE xf_search;
TRUNCATE TABLE xf_search_forum_cache;
TRUNCATE TABLE xf_search_forum_cache_user;
TRUNCATE TABLE xf_session;
TRUNCATE TABLE xf_session_activity;
TRUNCATE TABLE xf_session_admin;
TRUNCATE TABLE xf_session_install;
TRUNCATE TABLE xf_css_cache;
-- смотрим bash_cleanup.sh
-- TRUNCATE TABLE xf_data_registry; -- если хотите очистить, то придется перестроить кеш (xenforo cache, cloudflare cache, и т.д.)
TRUNCATE TABLE xf_file_check;
TRUNCATE TABLE xf_trending_result;
TRUNCATE TABLE xf_tag_result_cache;
TRUNCATE TABLE xf_sitemap;
TRUNCATE TABLE xf_image_proxy;
TRUNCATE TABLE xf_image_proxy_referrer;
TRUNCATE TABLE xf_link_proxy;
TRUNCATE TABLE xf_link_proxy_referrer;
TRUNCATE TABLE xf_oembed;
TRUNCATE TABLE xf_oembed_referrer;
TRUNCATE TABLE xf_unfurl_result;
TRUNCATE TABLE xf_cookie_consent_log;
-- TRUNCATE TABLE xf_payment_provider_log;  -- раскомментировать при необходимости. удаляет логи платежных шлюзов

-- =============================================
-- ИСТОРИЯ И РЕДАКТИРОВАНИЕ
-- =============================================
TRUNCATE TABLE xf_template_history;
TRUNCATE TABLE xf_edit_history;
TRUNCATE TABLE xf_template_modification_log;

-- =============================================
-- АНОНИМИЗАЦИЯ IP-АДРЕСОВ
-- =============================================
-- В XenForo 2 IP-адреса хранятся ТОЛЬКО в xf_ip и ссылаются через ip_id
-- Чтобы анонимизировать - обнуляем ссылки и чистим таблицу IP

UPDATE xf_post SET ip_id = 0;

-- У пользователей IP регистрации хранится НЕ в xf_user, а в логах (например, xf_login_attempt)
-- Прямого поля registration_ip в xf_user НЕТ → ничего обновлять не нужно
TRUNCATE TABLE xf_ip;  -- безопасно, если все ip_id = 0
-- Очистка flood-контроля
TRUNCATE TABLE xf_flood_check;

-- =============================================
-- УДАЛЕНИЕ "МЯГКО УДАЛЁННОГО" КОНТЕНТА
-- =============================================
-- Темы и сообщения: используют message_state / discussion_state = 'deleted'
DELETE FROM xf_thread WHERE discussion_state = 'deleted';
DELETE FROM xf_post WHERE message_state = 'deleted';
DELETE FROM xf_profile_post WHERE message_state = 'deleted';
DELETE FROM xf_profile_post_comment WHERE message_state = 'deleted';

-- Переписки (xf_conversation_master):
-- В XF2 нет "мягкого удаления" для переписок.
-- Удалённые переписки либо удаляются физически, либо остаются.
-- Если хотите удалить ВСЕ переписки - используйте:
DELETE FROM xf_conversation_message;
DELETE FROM xf_conversation_recipient;
DELETE FROM xf_conversation_user;
DELETE FROM xf_conversation_master;
-- Но это **крайне опасно** - лучше не трогать без необходимости.

-- =============================================
-- ОПЦИОНАЛЬНО: ОЧИСТКА УВЕДОМЛЕНИЙ И КЭША
-- =============================================
TRUNCATE TABLE xf_user_alert;
TRUNCATE TABLE xf_user_alert_optout;
TRUNCATE TABLE xf_thread_view;
TRUNCATE TABLE xf_attachment_view;
TRUNCATE TABLE xf_news_feed;
TRUNCATE TABLE xf_find_new;
TRUNCATE TABLE xf_find_new_default;

-- =============================================
-- ПРОЧИЕ ВРЕМЕННЫЕ ТАБЛИЦЫ
-- =============================================
TRUNCATE TABLE xf_approval_queue;
TRUNCATE TABLE xf_user_follow;  -- удалит все подписки на пользователей!

В самой системе:
Bash:
#!/bin/bash

cd /путь/к/вашему/форуму

# Удаляем кэш скомпилированных шаблонов и filecheck
rm -rf internal_data/code_cache/templates/
rm -rf internal_data/file_check/*.json

# Опционально: удаляем и другие временные кэши (безопасно)
rm -rf internal_data/cache/*
rm -rf internal_data/temp/*

# Если сделал TRUNCATE TABLE xf_data_registry;
# в /src/config.php добавить нужно:
# $config['development']['enabled'] = true;
# 1. Перестроить ВСЕ кэши (включая шаблоны, фразы, CSS)
php cmd.php xf-dev:rebuild-caches
# 2. Перекомпилировать шаблоны (на всякий случай)
php cmd.php xf-dev:recompile-templates # обычно все ОК! и на этом этапе все заработает как нужно
# 3. Перекомпилировать фразы
php cmd.php xf-dev:recompile-phrases
# 4. Перестроить свойства стилей (если используются кастомные стили)
php cmd.php xf-dev:recompile-style-properties
 
Назад
Сверху