Dans le cas d'une migration, un plugin très pratique permet de retrouver une référence avec son nouvel id.
Pour faire simple, si vous migrer les utilisateurs les ids peuvent potentiellement changer, une table de mapping est créé et permet de faire le lien Ancien site => Nouveau site permettant ainsi d'affecter les contenus à leur créateur via le plugin migration_lookup :
uid:
plugin: migration_lookup
migration: ma_migration_utilisateurs
source: uid
Ainsi, la valeur uid prendra la valeur migrée de l'id de l'utilisateur via la migration ma_migration_utilisateurs.
Mais si un utilisateur à été supprimé par exemple, alors un « stub » sera créé, un utilisateur « vide »... ce qui n'est pas forcément idéal.
On peut via une petite combiner utiliser ce système avec le plugin default_value qui permet de définir une valeur par défaut si le champ est vide.
uid_lookup:
plugin: migration_lookup
migration: anct_user
source: uid
uid:
plugin: default_value
source: '@uid_lookup'
default_value: 1
ainsi ici, uid_lookup prendra la nouvelle valeur de l'id de l'utilisateur migrée, null si pas trouvé. et le plugin default_value affectera dans ce cas la valeur 1.
Contenus en rapport
Ce site à été construit à l'origine sous Drupal 6, migré sous drupal 7 en 2012, Je suis en train de préparer la migration de ce site vers Drupal 8 via la Migrate API.
Ajouter un commentaire