Таблица 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
,
которая хранит опции для каждого отдельного сайта