Je construis un module personnalisé dans Drupal 8. Il comprend des fichiers de configuration YAML.
Au fur et à mesure que je développe, j'ai besoin de changer et d’ajouter à la configuration, par exemple pour ajouter un autre champ à mon entité personnalisée.
À l'heure actuelle, le seul moyen que j'ai trouvé pour que Drupal remarque les modifications est de désinstaller le module, puis de le réinstaller.
Existe-t-il un moyen de permettre à Drupal de vérifier que les fichiers de configuration fournis par les modules sont identiques à la configuration active et, dans le cas contraire, de mettre à jour la configuration active? Comment sont gérées les mises à jour de modules? Dans D7 hook_update_N
serait utilisé pour ajouter des champs en utilisant PHP, mais il semble que cela devrait être géré par le CM dans D8?
Ce que j'ai essayé après la mise à jour des fichiers yml du module:
drush cr
, config sync.copier manuellement tous les fichiers de configuration mis à jour dans
sites/default/files/config_XXX/staging/
- mais cela donne cette erreur "La configuration intermédiaire ne peut pas être importée, car elle provient d'un site différent de celui de ce site. Vous ne pouvez synchroniser la configuration qu'entre des instances clonées de ce site." .importer manuellement les fichiers un à un à l’aide du gestionnaire de configuration. Cela fonctionne, mais évidemment, il doit y avoir un moyen plus automatique.
[EDIT] utilise manuellement le module config_update pour examiner les modifications et «revenir» à la configuration du module. Encore une fois, c'est manuel.
EDIT: à partir de la gestion de la configuration - à faire et à ne pas faire
Ne pas faire
Essayez de modifier la configuration active sur votre site en modifiant les fichiers du répertoire config / install du module. Cela ne fonctionnera PAS car Drupal ne lira que dans ce répertoire lors de l'installation du module.
... mais des changements vont se produire, à moins que les modules ne soient liés à la configuration dont ils ont besoin dans leur toute première version, et ne puissent jamais jamais mettre à jour ou ajouter une configuration.
Merci d'avance.
hook_update_N
je suppose, mais je ne sais pas trop quoi
hook_update_N
. Excellent article sur Drupal 8 pour les petits sites (et la partie 2 ). Dans D8, "les sites possèdent leur configuration, pas leurs modules" .