À l'aide du nouveau gestionnaire de configuration Drupal 8, comment puis-je l'empêcher d'installer le module Devel sur certains environnements? Pour autant que je sache, l'installer sur mon local signifie que la prochaine fois que j'exporterai la configuration et la déplacerai vers mes autres environnements (dev, test, prod), elle sera automatiquement activée.
8
configuration-management
cambraca
la source
la source
drush
acceptable? J'ai découvert l'autre jourdrush config-export --skip-modules=devel
. Il pourrait y avoir quelque chose de similaire sans utiliser drush, mais je ne sais pas.Réponses:
Méthode: Drush
Drush peut ignorer les états activés des extensions lors de la synchronisation de la configuration.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Avec les outils Drush CMI, vous pouvez utiliser une liste de configurations à ignorer.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Méthode: modules
Vous pouvez utiliser le module Configuration Split qui vous permet de:
Configuration Module en mode lecture seule
$settings['config_readonly'] = TRUE;
Et un autre module est la configuration de l' environnement qui vous permet de remplacer la configuration en fonction de l'environnement.
la source
composer require --dev drupal/devel
. Le bonus supplémentaire est que l'installation de composer est plus rapide, ce qui accélère le déploiement de prod.Mise à jour : la fonctionnalité décrite ci-dessous a été supprimée récemment https://www.drupal.org/project/config_split/issues/2926505
Si vous utilisez drush dans votre processus de déploiement, vous pouvez effectuer les opérations suivantes:
Créez un
drushrc.php
fichier dans le même répertoire que votresettings.php
(par exemple:)docroot/sites/default
et mettez ce qui suit:Cela signifie que vous pouvez manipuler les commandes
drush cex
/drush cim
pour ignorer les modules pendant leur processus.Vous pouvez en savoir plus sur l' utilisation du filtre du module de configuration dans Drush 8 .
la source
drush cex --skip-modules
a été supprimé en faveur de config_split comme expliqué dans ce numéro, donc les solutions basées sur drush n'ont pas fonctionné pour moi.Voici la solution basée sur la solution Duncanmoo utilisant le module config_exclude
1. Installez config_exclude à l'aide de Composer require --dev et configurez-le
autorisez settings.php à être utilisé sur votre environnement de développement local
Ajouter des paramètres config_exclude dans un fichier local
voici quelques exemples de paramètres
NOTE 1: config_filter est une dépendance config_exclude donc si vous n'en avez pas besoin de production vous pouvez l'exclure ci-dessus
REMARQUE 2: le
settings.local.php
n'est pas une exigence. Cela dépend si est contrôlé par votre VCS ou non.2. Le compositeur requiert --dev
Lorsque vous activez un module qui est purement pour le développement, utilisez le drapeau --dev:
Cela entraîne l'ajout de ces dépendances dans le fichier composer.json sous require-dev:
Donc, si vous installez le site SANS vos modules de développement que vous utilisez:
REMARQUE: Sur vos environnements de production et de production, vous devez toujours faire --no-dev
3. utilisez drush cex comme vous l'utilisez normalement
n'exportera aucun des paramètres des modules exclus
REMARQUE: j'ai remarqué que les paramètres core.extension semblent avoir été modifiés après avoir exécuté la commande ci-dessus mais le .yml correspondant n'est jamais écrit sur le disque dur (même après confirmation
will be deleted and replaced with the active config
) donc il n'y a rien à commettre, je suppose que cela dépend de la internes du module config_excludela source
Il y a un problème intéressant pour Drupal 8.3.x: permettre aux modules de développement de désactiver la configuration-export . Le consensus général est que Configuration Split est actuellement la meilleure solution.
Commentaire de swentel :
Commentaire de geerlingguy :
la source
Configuration Split pourrait être une solution viable pour certains.
https://www.drupal.org/project/config_split
la source
Il y a une bonne façon de le faire, où vous vous retrouvez avec vos modules de développement commis dans le compositeur pour plus de commodité et la configuration de ces modules n'est pas ajoutée à votre exportation de configuration (il y a 2 parties):
1. Le compositeur requiert --dev Lorsque vous activez un module uniquement pour le développement, utilisez le drapeau --dev:
Cela entraîne l'ajout de ces dépendances dans le fichier composer.json sous require-dev:
Donc, si vous installez le site SANS vos modules de développement, vous dites:
NB: Sur vos environnements de mise en scène et de production, vous devriez toujours faire --no-dev
2. Utilisez le module config_split
Le module de configuration fractionnée vous permet de créer des regroupements d'export de configuration qui peuvent être activés ou désactivés dans un environnement.
J'ai en fait 3 divisions:
la source
J'ai fait un petit script pour tout faire en une seule fois.
la source
Vous pouvez également voir le module Config Ignore .
la source
Vous pouvez utiliser un module de remplacement de déploiement pour cela. Lisez le lien suivant pour une description détaillée:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
Cependant , la meilleure façon de procéder serait de désactiver votre module en local puis d'exporter la configuration.
Drupal fournit un moyen de remplacer les paramètres de configuration dans
settings.php
, mais ils ne sont pas valides pour désactiver / activer les modules.De
default.settings.php
:la source