Je pensais que c'était un cas d'utilisation simple du nouveau système de gestion de configuration, mais je n'ai pas eu de chance de trouver comment résoudre ce problème:
Problème
Je veux stocker la configuration dans git et utiliser drush pour exporter la configuration pendant le développement, puis lors du déploiement, importer la configuration. Assez similaire à faire un retour de fonctionnalités dans Drupal 7. Mon problème est que je ne veux pas stocker les codes d'accès dans git pour diverses intégrations. Cela entraîne la suppression de ces configurations sur
$ drush cim -y
Où j'ai regardé
J'espérais qu'il y aurait une liste / configuration simple pour les configurations qui devraient être exclues lors de l'importation / exportation. Il semble qu'il y en ait eu à un moment donné, mais il doit avoir été supprimé à nouveau, car il est disponible dans la version actuelle de Drupal 8.
J'ai regardé comment les changements de configuration sont effectués en comparant la mémoire active et la synchronisation pour voir s'il y a un endroit où je pourrais supprimer les modifications, cela ne semble pas être le cas. J'ai regardé à quel point la configuration importait drush car elle a des exclusions de configuration, mais il ne semblait pas que c'était extensible. J'ai regardé ConfigEvents
, mais tout cela semble se produire après une importation, il ne semble donc pas que cela puisse être utilisé.
Suis-je en train de manquer quelque chose, ou n'est-il pas possible d'exclure simplement les configurations de l'importation / exportation?
la source
Vous pouvez utiliser le module "Config Ignore": https://www.drupal.org/project/config_ignore
la source
Vous pouvez utiliser une combinaison de config_ignore et config_split pour cela.
Config ignore vous permet d'ignorer un sous-ensemble d'entités de configuration lors de l'importation (empêche également les suppressions depuis la version 2.x). Malheureusement, cela n'empêche pas d'exclure la configuration pendant l'exportation.
Pour exclure des entités de configuration lors de l'exportation, vous pouvez utiliser config_split, créer une nouvelle entité config_split et laisser le dossier vide. Cela empêche la configuration d'être exportée vers le système de fichiers; au lieu de cela, il l'exporte dans la base de données.
J'ai écrit Exclure la configuration de la gestion de la configuration dans Drupal 8 sur ce sujet.
la source
Afin de diviser les configurations, vous pouvez utiliser https://www.drupal.org/project/config_split .
Vous pouvez diviser les exportations en différents répertoires que vous pouvez ensuite ignorer.
Il y a eu une très belle présentation à drupal con dublin 2016 par les responsables de l'initiative CMI que je vous invite à vérifier quoi qu'il arrive.
la source
Je viens de tester @berdir dans la réponse n ° 1 et il fonctionne parfaitement. Seulement j'ajoute une petite note: il faut mettre toute la config dans ce var, complet. Sans cela, $ config var ne fonctionne pas correctement.
Quelque chose comme ça:
Documentation: https://www.drupal.org/node/1928898
Remarque de la documentation ci-dessus: "Notez que les valeurs remplacées via $ config dans settings.php ne seront pas visibles depuis l'interface d'administration Drupal."
la source
$config['module.settings']['some']['value'] = 'foo';
Je me demande un peu pourquoi personne n'a mentionné les outils Drush CMI à ce jour. Les mots magiques sont
drush cexy
etconfig-ignore.yml
. Vous aurez une liste que vous pourrez ajuster. Nous en avons eu besoin une fois pour exclure les instances de bloc tandis que les bases de bloc étaient traitées.Source: https://www.previousnext.com.au/blog/introducing-drush-cmi-tools
Source: https://github.com/previousnext/drush_cmi_tools
la source
Utilisation du partage de configuration (recommandé)
Le module de configuration config a été spécialement conçu pour ce besoin.
Config split est intégré avec drush.
Utiliser Drush uniquement
Drush, il est également censé pouvoir le faire en utilisant le
--skip-modules
drapeau.Vous pouvez ajouter les lignes suivantes dans un drupal / drushrc.php dans la racine Web de votre projet pour le faire automatiquement.
Voir http://www.drush.org/en/master/config-exporting/#ignoring-development-modules
Malheureusement, il existe un bogue avec cette fonctionnalité: https://github.com/drush-ops/drush/issues/1820 . Donc, pour le moment, vous devez également ajouter ces fichiers de configuration dans votre .gitignore afin que les fichiers de configuration exportés ne soient pas validés. C'est un processus en cours pour peut-être abandonner cette fonctionnalité (buggy) de drush en faveur de la division de la configuration.
la source