Outils pour utilisateurs

Outils du site


drupal10:migrate_content

Migration de contenu vers Drupal

Écrire un module de migration

|-- modules
|   `-- custom
|       `-- mes_migrations
|           |-- migrations
|           |   `-- mig_test_1.yml
|           `-- mes_migrations.info.yml

modules/custom/mes_migrations/mes_migrations.info.yml

name: Mes Migrations
type: module
package: Custom
description: Premier test de migration
core_version_requirement: ^10
dependencies:
  - drupal:migrate

modules/custom/mes_migrations/migrations/mig_test_1.yml

id: mig_test_1
label: Migration Test 1
source:
  plugin: embedded_data
  data_rows:
    -
      unique_id: 1
      creative_title: 'Page importée #1'
      engaging_content: 'Texte de la page importée #1'
    -
      unique_id: 2
      creative_title: 'Page importée #2'
      engaging_content: 'Texte de la page importée #2'
    -
      unique_id: 3
      creative_title: 'Page importée #3'
      engaging_content: 'Texte de la page importée #3'
  ids:
    unique_id:
      type: integer
process:
  title: creative_title
  body: engaging_content
destination:
  plugin: 'entity:node'
  default_bundle: page

Exécution

Activer ce module (Migrate sera également activé s'il ne l'est pas déjà).

Voir le status des migrations :

vendor/bin/drush migrate:status

Exécuter une migration (ou plusieurs) :

vendor/bin/drush migrate:import mig_test_1

Process

Si aucun plugin n'est défini, c'est le plugin get qui est utilisé par défaut :

process:
  title: creative_title
  body: engaging_content

Plugin get :

source:
  ...
process:
  title:
    plugin: get
    source: creative_title
  body:
    plugin: get
    source: engaging_content

Plugin default_value :

process:
  type:
    plugin: default_value
    default_value: page
destination:
  plugin: 'entity:node'
 
# plus besoin de spécifier la propriété "default_bundle" puisqu'on
# a défini une valeur pour le champ "type".

Plugin concat :

source:
  plugin: embedded_data
  data_rows:
    -
      unique_id: 1
      first_name: 'Marc'
      last_name: 'Lebrun'
process:
  title:
    plugin: concat
    source:
      - first_name
      - last_name
    delimiter: ' '

Plugin callback :

process:
  title:
    plugin: callback
    source: first_name
    callable: ucwords
 
    # callable est une fonction PHP

Chaînage de plugins :

process:
  title:
    -
      plugin: concat
      source:
        - first_name
        - last_name
      delimiter: ' '
    -
      plugin: callback
      callable: ucwords
 
      # le paramètre "source" du plugin callback n'est pas nécessaire 
      # lorsqu'il fait partie d'une chaîne de plugins
drupal10/migrate_content.txt · Dernière modification: 2023/12/02 09:57 par marclebrun