id: d6_vocabulary_field
label: Vocabulary field configuration
migration_tags:
  - Drupal 6
  - Configuration
source:
  plugin: d6_taxonomy_vocabulary
  constants:
    entity_type: node
    type: entity_reference
    target_entity_type: taxonomy_term
    field_prefix: field_
process:
  entity_type: 'constants/entity_type'
  type: 'constants/type'
  # This value is only used in the 'field_name' process pipeline below.
  raw_field_name:
    -
      plugin: migration_lookup
      migration: d6_taxonomy_vocabulary
      source: vid
    -
      plugin: skip_on_empty
      method: row
  field_name:
    # Prepend field_ to avoid conflicts with base fields, and make sure the
    # result is no longer than 32 characters.
    -
      plugin: concat
      source:
        - constants/field_prefix
        - '@raw_field_name'
    -
      plugin: substr
      length: 32
    -
      # This plugin checks if the vocabulary being migrated is the one used by
      # Forum. If so, we use the machine name that Forum expects. Otherwise, we
      # leave it unchanged.
      plugin: forum_vocabulary
      machine_name: taxonomy_forums
  'settings/target_type': 'constants/target_entity_type'
  cardinality: cardinality
destination:
  plugin: entity:field_storage_config
  dependencies:
    module:
      - entity_reference
migration_dependencies:
  required:
    - d6_taxonomy_vocabulary
