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 (typiquementsites/all/modules/contrib)
.
Installation.
- Téléchargez et déplacez le plugin grav_export dans le dossier
sites/all/modules/contrib
de votre Drupal. - Exécutez
composer install
dans le dossiergrav_export
pour installer les dépendances. - Activez le module grav_export via
drush en grav_export -y
ou l'interface graphique d'administration. - Exécutez
drush grav_export_all
, ou son aliasdrush gravea
, pour exporter tous les éléments. Voir les autres options ci-dessous. - Les fichiers exportés se trouvent dans
[DRUPAL_ROOT]/sites/default/files/grav_export/EXPORT
- Le plugin Grav https://github.com/david-szabo97/grav-plugin-admin-addon-user-manager est recommandé pour afficher et gérer les utilisateurs.
- 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/confi
g 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.
- 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.
- 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-à-direpages/content/my_first_page/page.yaml
oupages/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.