Таблица workspace_association
Таблица workspace_association является ключевым компонентом модуля Workspaces в Drupal, который предоставляет возможности для создания стадийных (stage) и рабочих сред. Она служит для отслеживания и управления связями между ревизиями контента в разных рабочих пространствах, обеспечивая целостность данных при деплое изменений из одного workspace в другой.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
workspace |
varchar(128) |
Идентификатор рабочего пространства (workspace), в котором была сделана ревизия. Внешний ключ к таблице workspace.
|
target_entity_type_id |
varchar(32) |
Идентификатор типа сущности (например, node, user, taxonomy_term), к которой относится отслеживаемая ревизия.
|
target_entity_id |
int |
Идентификатор сущности (ID), к которой относится отслеживаемая ревизия. |
target_entity_revision_id |
int |
Идентификатор конкретной ревизии сущности, которая ассоциирована с рабочим пространством. Это позволяет точно отслеживать, какая версия контента принадлежит какому workspace. |
Как это работает
Когда пользователь вносит изменения в сущность (например, статью) в рамках определенного рабочего пространства (отличного от live), система создает новую ревизию этой сущности. Запись в workspace_association создается для связи этой новой ревизии с идентификатором workspace.
Эта связь позволяет системе знать, какие именно изменения были сделаны в каждом workspace. При выполнении деплоя (публикации) изменений из одного workspace в другой (например, из stage в live), система использует данные из этой таблицы, чтобы определить, какие ревизии нужно опубликовать.
Механизм работает через систему отслеживания ревизий, а не прямого перезаписывания данных. Это обеспечивает возможность отката изменений и предотвращает потерю данных. Когда workspace удаляется, все связанные с ним ассоциации также удаляются из этой таблицы.
Пример SQL-запроса
Получить все ассоциации для конкретного рабочего пространства можно следующим запросом:
SELECT wa.*, w.label as workspace_name
FROM workspace_association wa
INNER JOIN workspace w ON wa.workspace = w.id
WHERE wa.workspace = 'stage';
Смотрите также
-
таблицу
workspace,
которая хранит информацию о рабочих пространствах -
таблицу
node,
которая содержит основные данные материалов -
таблицу
node_revision,
которая хранит ревизии материалов -
таблицу
revision,
которая содержит общие данные о ревизиях всех сущностей