Migrer de Drupal 7 vers Grav

Conditions.

  • PHP v7.1 ou supérieur pour les dépendances composer.
  • Drush
  • Site de travail Drupal 7 à partir duquel le contenu sera exporté.
  • Accès R/W à public:// ainsi qu'au dossier des modules utilisateurs sur le site Drupal (typiquement sites/all/modules/contrib).

Installation.

  1. Téléchargez et déplacez le plugin grav_export dans le dossier sites/all/modules/contrib de votre Drupal.
  2. Exécutez composer install dans le dossier grav_export pour installer les dépendances.
  3. Activez le module grav_export via drush en grav_export -y ou l'interface graphique d'administration.
  4. Exécutez drush grav_export_all, ou son alias drush gravea, pour exporter tous les éléments. Voir les autres options ci-dessous.
  5. Les fichiers exportés se trouvent dans [DRUPAL_ROOT]/sites/default/files/grav_export/EXPORT
  6. Le plugin Grav https://github.com/david-szabo97/grav-plugin-admin-addon-user-manager est recommandé pour afficher et gérer les utilisateurs.
  7. Suivez les étapes ci-dessous pour importer les données dans Grav.

Exporter des utilisateurs depuis Drupal.

Commande :

drush grav_export_users ou drush graveu générera des fichiers de compte utilisateur Grav.

Résultats :

  • Comptes d'utilisateurs dans le dossier d'exportation sous EXPORT/accounts/.
    • Les noms d'utilisateur seront remplis d'un minimum de 3 caractères, maximum de 16.
    • Si un nom d'utilisateur est tronqué ou rempli, le nom d'utilisateur aura également l'uid Drupal pour éviter les collisions.
    • Les mots de passe de chaque compte sont générés de manière aléatoire et n'ont aucun lien avec le compte Drupal respectif. Le mot de passe passe automatiquement à un hashed_password une fois que le compte s'authentifie pour la première fois.

Importer des utilisateurs dans Grav.

Copiez le dossier EXPORT/accounts dans votre répertoire user (par exemple, les fichiers username.yaml doivent être placés dans user/accounts).

Exportation des rôles d'utilisateur depuis Drupal.

Commande :

drush grav_export_roles ou drush graver générera un fichier Grav groups.yaml.

Résultats :

Les rôles d'utilisateur Drupal sont exportés en tant que groupes Grav dans un fichier groups.yaml dans config/groups.yaml. Quelques notes sur l'exportation de rôle :

*Chaque rôle Drupal est converti en groupe Grav drupal_<ROLE_WITH_UNDERSCORES> (par exemple, authentificated user devient drupal_authenticated_user). * Le groupe drupal_administrator reçoit un accès admin.super ainsi qu'un accès admin.login. * Le groupe drupal_authenticated_user reçoit l'accès admin.login. * Tous les comptes reçoivent le groupe "drupal_authenticated_user". * Les utilisateurs Drupal avec des rôles d'administrateur reçoivent le groupe drupal_administrator.

Importation des rôles d'utilisateur

Copiez le dossier EXPORT/config dans users/config.

Exportation de types de contenu depuis Drupal.

Commande :

drush grav_export_content_types ou drush gravect générera des plans Grav et des fichiers html.twig.

Résultats :

Pour chaque type de champ défini, drush gravect tentera de créer un plan compatible et un fichier html.twig correspondant pour chaque type de contenu Drupal. Les fichiers seront exportés vers EXPORT/themes/drupal_export/blueprints et EXPORT/themes/drupal_export/templates respectivement.

Limites connues.

  1. Champ "nombre_entier"

La cardinalité dans de nombreux champs Grav ne prend en charge qu'une seule valeur. Seule la première entrée Drupal est exportée.

  1. Champ "champ d'adresse"

Grav n'a aucun concept de champ d'adresse. Les données de champ Drupal sont exportées sous forme de type de formulaire array.

Importation de types de contenu dans Grav.

Copiez les dossiers EXPORT/themes/drupal_export/blueprints et XPORT/themes/drupal_export/templates dans le thème actif dans Grav. Le plugin d'administration devrait maintenant fournir des options supplémentaires pour chaque type de contenu et les champs associés.

Remarque : Lorsque le contenu des champs est ajouté aux en-têtes de page Grav, l'affichage de ces champs n'est pas exporté depuis Drupal. Le fichier html.twig devra être modifié afin d'afficher tous les champs supplémentaires (en plus du contenu du corps principal).

Exporter des nœuds depuis Drupal.

Commande :

drush grav_export_nodes ou drush graven générera des utilisateurs et des groupes Grav. Résultats

Résultats :

  • Chaque nœud est exporté vers sa propre structure de dossiers sous EXPORT/pages, en fonction de l'alias d'URL et du type de contenu de Drupal (c'est-à-dire pages/content/my_first_page/page.yaml ou pages/content/cool_article/article.yaml).
  • Les données de champ Drupal sont stockées dans l'en-tête de la page.
  • Les fichiers sont stockés dans EXPORT/data/files/, suivant un modèle de stockage de type Drupal.
  • Dans la sortie drush, des termes de taxonomie supplémentaires peuvent être produits. Copiez-les dans le fichier user/config/site.yaml de Grav sous la clé de taxonomie.

Importation de nœuds dans des pages Grav.

Copiez les dossiers EXPORT/data et EXPORT/pages dans le répertoire `user dans Grav.