Таблица block_content_revision
Таблица block_content_revision является частью системы контроля версий Drupal и хранит историю изменений пользовательских блоков (custom blocks). Каждая новая ревизия сохраняет полное состояние блока на момент редактирования.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
id |
int |
Первичный ключ, уникальный идентификатор ревизии. |
revision_id |
int |
Уникальный идентификатор ревизии. Связывает ревизию с основной записью в block_content через поле revision_id.
|
langcode |
varchar(12) |
Код языка, для которого предназначена данная ревизия блока. |
revision_created |
int |
Временная метка (timestamp) создания ревизии. |
revision_user |
int |
Идентификатор пользователя (users.uid), создавшего эту ревизию.
|
revision_log_message |
longtext |
Сообщение журнала изменений, которое пользователь может оставить при сохранении ревизии для описания внесенных правок. |
Как это работает
Когда пользователь редактирует и сохраняет пользовательский блок, система Drupal создает новую запись в таблице block_content_revision. Эта запись содержит метаданные о ревизии: кто, когда и с каким комментарием ее создал.
Основное содержимое блока (заголовок, тело и другие поля) хранится не в этой таблице, а в ревизионных таблицах полей, например block_content__body_revision. Таблица block_content_revision служит центральным узлом, связывающим все ревизионные данные одного изменения.
Поле revision_id является связующим звеном. Оно соответствует полю revision_id в основной таблице block_content, где revision_id указывает на текущую актуальную ревизию блока.
Система позволяет просматривать историю изменений блока и при необходимости восстанавливать любую из предыдущих ревизий, делая ее текущей. Это особенно полезно для отслеживания авторских правок и отката ошибочных изменений.
Пример SQL-запроса
Получить историю ревизий для конкретного блока можно следующим запросом:
SELECT bcr.revision_id, bcr.revision_created, u.name as username, bcr.revision_log_message
FROM block_content_revision bcr
JOIN block_content bc ON bcr.id = bc.id
LEFT JOIN users u ON bcr.revision_user = u.uid
WHERE bc.id = 25
ORDER BY bcr.revision_created DESC;
Смотрите также
-
таблицу
block_content,
которая хранит основную информацию о пользовательских блоках -
таблицу
block_content_field_data,
которая содержит переведенные данные блоков -
таблицу
block_content__body,
которая хранит содержимое тела блока -
таблицу
node_revision,
которая выполняет аналогичную функцию для ревизий материалов