Last updated by evans.bernier on Sat, 2015年02月21日 21:08
Explication du sujet
La migration de Drupal 6 vers Drupal 7 est synoyme de migraine pour plusieurs gens. Cependant, c'est possible de le faire sans douleur.
L'article sera divisé en deux, la première partie parlant de ce qui est fait automatiquement et ensuite ce qui doit être fait manuellement en cas de pépin. Évidemment, ceci dépend de la structure du site, plus il est complexe, plus la migration le sera.
Migration automatique
- Créer une copie du site à migrer : afin de permettre de comparer les deux sites après la migration et/ou d’effectuer le transfert des données manuel en cas de problèmes.
- Mettre à jour Drupal 6 : vérifier aussi la compatibilié des modules et les mettre à jour. Vérifier aussi si vos modules sont tous nécessaires pour Drupal 7, car il faudra peut-être faire des compromis.
C'est ici que les choses se compliquent!
- CCK : Quelques fonctionnalités de CKK sont incluses dans le module Fields (core Drupal 7) mais pas toutes. Il faut donc ajouter le module CCK de Drupal 7 pour assurer la migration des champs de données. C'est la première chose à faire après la migration du core.
- Content Migrate : Après avoir installer CCK, il faut activer le module content migrate ensuite il faut aller dans structure->migrate fields pour effectuer la migration des champs.
Migration manuelle
Il se peut que le lien entre différents types de contenu, par exemple entre un auteur et un livre ne soit pas correct. Il faut donc effectuer la migration manuellement à l’aide d’une requête SQL.
Sur Drupal 6, la table qui associe deux types de contenu se nomme de cette façon: content_field_xxx, les champs de cette table sont:
- vid: ID du noeud de revision
- nid: ID du noeud
- delta: Séquence (dans les cas de champs à saisie multiple)
- field_xxx_nid: ID du noeud authors a lié
Sur Drupal 7, la table se nomme de cette façon field_data_field_xxx, les champs de cette table sont:
- entity type: Le type d’entité de la donnée (node le plus souvent)
- bundle: Le nom du type du contenu (product ou book par exemple)
- deleted: Booléen qui indique si la donnée a été effacé ou non.
- entity_id: Équivalent du nid sur Drupal 6
- revision_id: Équivalent du vid sur Drupal 6
- language: Le langage utilisé pour l’item (und quand il n’y en a pas)
- delta: Pareil que sur Drupal 6
- fields_xxxx_nid: Pareil que sur Drupal 6
Pour terminer
Effectuer une migration demande du travail et du temps, à la fin de la migration il arrive que le client rajoute de nouvelle données sur le site en production toujours sur Drupal 6. Il faut donc mettre à jour la BD sur Drupal 7.
Pour régler ce problème et enfin passer définitivement de Drupal 6 à Drupal 7, je ne voit que 2 solutions, soit rentrer les nouvelles données à la main s'il y en a peu, sinon d'utiliser des requêtes SQL pour effectuer la migration des nouvelles données. Dans ce cas, il vaut mieux sauvegarder la BD de Drupal 7 avant.
Source (wiki écrit par un des participants du meetup) :
http://blog-dun-bidouilleur.com/?page_id=250