НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
170 of 182 menu

Таблица 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,
    которая содержит общие данные о ревизиях всех сущностей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить