Gestion de la configuration de votre site
Drupal stocke les données de configuration du site de manière cohérente – de la liste des modules activés aux types de contenu, en passant par les vocabulaires de taxonomie, les champs et les vues.
Il n'est pas recommandé de modifier la configuration sur un site en production. Le système est conçu de manière à ce que vous puissiez facilement utiliser la configuration actuelle, tester localement les modifications, les exporter dans des fichiers et les déployer dans un environnement de production. La configuration de votre site peut être sauvegardée en tant que partie de votre base de code et intégrée dans un système de contrôle de version.
Par défaut, la configuration « active » est stockée dans la base de données (table « config »). Ceci pour des raisons de performance et de sécurité. Il s'agit de la configuration complète du site à un instant donné. La configuration peut être exportée et importée sous forme de fichiers YAML, soit en totalité, soit sous forme de fragments spécifiques, en utilisant les commandes de configuration de Drush et/ou de Drupal Console ou via le Gestionnaire de configuration. (Voir les détails ci-dessous.)
L’export et l’import des modifications de configuration entre différentes installations Drupal dans divers environnements, tels que Développement, Staging et Production, vous permettent d’apporter et de vérifier les modifications à distance de l’environnement réel de votre site.
Cela vous permet de déployer la configuration d’un environnement à un autre (Drupal vérifie par précaution que le site est bien le même avant l’import, en comparant son UUID).
Fichiers de configuration des modules et thèmes
La configuration par défaut fournie avec les modules, distributions et thèmes est importée dans le stockage actif de configuration lorsque les extensions sont activées. La configuration par défaut de l’extension se trouve dans le répertoire config/install.
Comment importer, exporter et synchroniser
Avec le module principal Gestionnaire de configuration, vous pouvez importer, exporter et synchroniser la configuration du site via Gestion>Configuration>Développement>Synchronisation de la configuration (admin/config/development/configuration). Vous pouvez visualiser les modifications avant leur import.
Un objet unique peut aussi être importé ou exporté à l’aide d’un flux de travail de copie / collage. Ceci est utile si, par exemple, vous souhaitez simplement déplacer une vue créée d’un environnement à un autre.
Ou la configuration complète du site peut être exportée sous forme de fichiers YAML dans une archive tar.gz. Cela fonctionne uniquement si vous déplacez la configuration entre deux copies du même site (par exemple, dev et production) ; pour cette raison, les UUID des sites doivent correspondre.
Pour vérifier l’UUID du site via la ligne de commande :
- Avec Drush
drush cget system.site
- Avec Drupal Console
drupal debug:config system.site
Exemples complets de workflows de synchronisation :
Une fois la synchronisation terminée, toutes les modifications seront appliquées, telles que l’activation de nouveaux modules, champs ou types de contenu. En résumé, toutes les modifications de configuration faites sur le site de développement doivent maintenant être opérationnelles en production.
Informations supplémentaires
Pour plus d’informations détaillées sur le système de gestion de configuration dans Drupal 8, vous pouvez consulter les pages de référence de l’API de configuration.
À faire et à ne pas faire
À FAIRE :
Il est fortement recommandé d’effectuer un dump de la base de données avant chaque synchronisation des répertoires intermédiaire et actif. Le dump de la base de données « peut vous sauver la vie » en cas de stratégie de retour arrière nécessaire.
À NE PAS FAIRE :
Ne tentez pas de modifier la configuration active de votre site en changeant les fichiers dans le répertoire config/install d’un module.
Cela ne fonctionnera PAS, car Drupal ne lit ce répertoire que lorsque le module est installé.
Pour éditer la configuration « en direct », vous devez utiliser drush config-edit ou drupal config:edit