migration D6 D7 en préservant les nid [resolu]

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Voici une solution pour faire une migration de D6 vers D7 en préservant les nid.

Mon objectif est :
- de ne pas perdre tous les liens entre contenus qui sont dans le site source
- de ne pas modifier de code ou de créer un module

Je mets cette solution ici car je ne l'ai trouvé nulle part malgré les nombreuses pages consultées et car elle est beaucoup moins fastidieuse que "feed".
Je vais essayer d'être clair. Si ce n'est pas le cas, n'hésitez pas à le dire et j'améliorerais.

1) créer votre type de contenu destination
2) configurer "migrate -> import from drupal" pour récupérer structure et données de la BD source pour ce type de contenu. A l'étape 6 de cette configuration, cliquer sur "save import settings" car il y aura ensuite des modifications à faire dans l'association des champs sources et destinations.
3) Sur la page qui s'affiche après ce click sur "save import settings", cliquer sur le lien qui vient d'être configuré, puis sur l'onglet "modifier" (en haut à droite) afin de modifier le mapping entre source et destination.
4) parmi la liste de tous les champs, décocher "Option: Indicates a new node with the specified nid should be created [is_new]" et tapez "1" dans le champ "valeur par défaut" (c'est la colonne d'à côté). Ensuite, cliquer sur "apply change" pour sauvegarder votre modification.

A ce moment, vous revenez sur la page avec les 3 onglets en haut à droite..

5) cliquer à nouveau sur "modifier" pour continuer à modifier le mapping entre source et destination.
6) A cette étape (et seulement si vous avez bien fait l'étape 4), vous avez en 1ère ligne "Node: Existing node ID [nid]"(la destination), a qui vous pouvez associer "Node ID [nid]" (la source).

Mais pour que les nid soient préservés, il faut aussi associer "Node ID [nid]" avec "Option: Indicates a new node with the specified nid should be created [is_new]" (et vérifier qu'il y a toujours le "1" dans la colonne "valeur par défaut")

Dans la foulée :
- associer tous les autres champs que vous voulez, y compris le "Authored by (uid) [uid]" si vous voulez
- n'oubliez pas d'associer "Titre [title]" à "Pathauto: Perform aliasing (set to 0 to prevent alias generation during migration [pathauto]" pour que cela soit fait tout de suite, en enlevant le "0" dans la colonne "valeur par défaut".

A ce moment, vous pouvez effectivement lancer votre importation pour votre type de contenu et si tout va bien, les nid originaux ont bien été préservés.

Si vous aviez déjà) trouvé cela ailleurs, merci de l'indiquer car j'ai peut-être mal cherché!!!

Version de Drupal :