Миграция терминов таксономии

Термины представляют из себя отдельные сущности, которые подключаются к родительской entity в виде term reference. Потому классический подход — это отдельная предварительная миграция терминов, а потом подключение их, используя migration_lookup плагин.

Но на практике, вы скорее всего будет иметь термины в виде текстовых меток. И вам удобнее будет обработать их «на лету», без дополнительной отдельной миграции.

Именно для этого я и написал небольшой миграционный обработчик, который преобразует текстовую метку в ссылку на термин (создаёт или находит существующий).

Вот код этого process plugin:

Он принимает $value (метку термина) и возвращает массив [‘target_id’ => TERMID].

В настройках можно указать в какой словарь должен попадать термин (destination_bundle).

Примеры использования в миграции:

В первом случае (field_blog_category) читается одиночный термин категории (category). Во втором — (field_blog_tag) список тегов, разделенных запятыми. При этом используется т.н. pipeline, где на первом шаге строка разбивается стандартным плагином explode, а дальше каждый термин передаётся в наш процессор term_generate.

Разместите данный плагин в вашем модуле (/src/Plugin/migrate/process), и сбросьте кеш, чтобы Drupal его зарегистрировал.

Написать комментарий

Мало букафф? Читайте есчо !

Конфигурация для миграции статей (node:blog) из CSV файла

Март 2, 2024 г.

Это пример миграции данных из CSV файла в Drupal. Данная миграция является основной в том смысле, что она ссылается на дочернюю миграцию, в ходе которой будут созданы параграфы (entity_reference_revisions:paragraph) с HTML контентом. А далее мы ...

Читать

Ошибка: Migration is busy with another operation

Апрель 19, 2024 г.

При отладке миграций в Drupal могут возникать состояния, когда миграция не прошла по какой то причине (ошибке) и подвисла в состоянии отличном от Idle. ...

Читать

 

Комментарии к «Миграция терминов таксономии»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: