# Migration configuration for beer content.
id: beer_node
label: Beers of the world
migration_group: beer
source:
  plugin: beer_node
destination:
  plugin: entity:node
process:
  # Hardcode the destination node type (bundle) as 'migrate_example_beer'.
  type:
    plugin: default_value
    default_value: migrate_example_beer
  title: name
  nid: bid
  uid:
    plugin: migration
    migration: beer_user
    source: aid
  sticky:
    plugin: default_value
    default_value: 0
  field_migrate_example_country: countries
  field_migrate_example_beer_style:
    plugin: migration
    migration: beer_term
    source: terms
  # Some Drupal fields may have multiple components we may want to set
  # separately. For example, text fields may have summaries (teasers) in
  # addition to the full text value. We use / to separate the field name from
  # the internal field value being set, and put it in quotes because / is a
  # YAML special character.
  'body/value': body
  'body/summary': excerpt
# Our beer nodes have references to terms and users, so we want those to be
# imported first. We make that dependency explicit here - by putting those
# migrations under the 'required' key, we ensure that the tools will prevent
# us from running the beer_node migration unless the beer_term and beer_user
# migrations are complete (although we can override the dependency check by
# passing --force to the drush migrate-import command). We can also add
# 'optional' dependencies - these affect the order in which migrations are
# displayed, and run by default, but does not force you run them in that
# order.
# The general rule of thumb is that any migrations referenced by migration
# process plugins should be required here.
migration_dependencies:
  required:
    - beer_term
    - beer_user
dependencies:
  enforced:
    module:
      - migrate_example
