ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
16 of 21 menu
Хочешь читать code.mu на своем родном языке? Помоги с переводом! Переведем мы сами, тебе нужно указать на ошибки перевода:) Оставляй заявку ->

Таблица wp_blog_versions

Таблица wp_blog_versions является служебной и используется исключительно в конфигурации WordPress Multisite. Её основное назначение - хранение информации о версии схемы базы данных для каждого сайта в сети. Это позволяет системе определять, требуется ли для того или иного сайта обновление базы данных при обновлении ядра WordPress.

Поля

Поле Тип данных Описание
blog_id bigint(20) Уникальный идентификатор сайта в сети (Multisite). Является первичным ключом таблицы. Ссылается на поле blog_id в таблице wp_blogs.
db_version varchar(20) Номер версии схемы базы данных для этого сайта. Значение соответствует константе WP_DB_VERSION на момент последнего успешного обновления базы данных сайта.
last_updated datetime Дата и время последнего обновления записи, то есть последнего успешного обновления базы данных для этого сайта. Имеет формат YYYY-MM-DD hh:mm:ss.

Как это работает

При установке или обновлении WordPress Multisite система проверяет, совпадает ли версия схемы БД, указанная в константе WP_DB_VERSION, с версией, хранящейся в таблице wp_blog_versions для каждого сайта. Если версии отличаются, для данного сайта запускается процесс обновления базы данных, который выполняет необходимые SQL-запросы (из файла wp-admin/includes/upgrade.php).

После успешного применения всех изменений система обновляет запись в таблице wp_blog_versions, устанавливая новое значение db_version и текущую дату и время в поле last_updated. Это предотвращает повторный запуск скриптов обновления для данного сайта в будущем.

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

Важно отметить, что эта таблица существует только в основной базе данных сети (той, что была создана первой) и отсутствует в базах данных отдельных сайтов, если для них используется режим отдельных БД.

Пример SQL-запроса

Проверить актуальность версий баз данных всех сайтов в сети можно следующим запросом:

SELECT b.blog_id, b.domain, b.path, v.db_version, v.last_updated FROM wp_blogs b LEFT JOIN wp_blog_versions v ON b.blog_id = v.blog_id ORDER BY b.blog_id;

Узнать, какие сайты требуют обновления базы данных (если их версия не равна актуальной WP_DB_VERSION):

SELECT blog_id, db_version FROM wp_blog_versions WHERE db_version != '13490'; /* Замените 13490 на текущее значение WP_DB_VERSION */

Смотрите также

  • таблицу wp_blogs,
    которая хранит список всех сайтов в сети
  • таблицу wp_site,
    которая хранит информацию о самой сети сайтов
  • таблицу wp_options,
    которая хранит опции для каждого отдельного сайта