Usando el nuevo administrador de configuración de Drupal 8, ¿cómo puedo evitar que instale el módulo Devel en ciertos entornos? Hasta donde sé, instalarlo en mi local significa que la próxima vez que exporte la configuración y la mueva a mis otros entornos (dev, test, prod), se habilitará automáticamente.
8
configuration-management
cambraca
fuente
fuente
drush
aceptable? Me enteré el otro día sobredrush config-export --skip-modules=devel
. Puede haber algo similar sin usar drush, pero no lo sé.Respuestas:
Método: Drush
Drush puede ignorar los estados habilitados de las extensiones al sincronizar la configuración.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Con las herramientas Drush CMI puede operar con una lista de configuraciones para ignorar.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Método: módulos
Puede usar el módulo de configuración de división que le permite:
Configuración del módulo de modo de solo lectura
$settings['config_readonly'] = TRUE;
Y otro módulo es la configuración del entorno que le permite anular la configuración por entorno.
fuente
composer require --dev drupal/devel
. La ventaja adicional es que la instalación del compositor es más rápida, lo que hace que la implementación de productos sea más rápida.Actualización : la función que se describe a continuación se eliminó últimamente https://www.drupal.org/project/config_split/issues/2926505
Si está utilizando drush en su proceso de implementación, puede hacer lo siguiente:
Cree un
drushrc.php
archivo en el mismo directorio que susettings.php
(por ejemplo:)docroot/sites/default
y coloque lo siguiente:Esto significa que puede manipular los comandos
drush cex
/drush cim
para omitir módulos durante su proceso.Puede leer más sobre el uso del filtro del módulo de configuración en Drush 8 .
fuente
drush cex --skip-modules
se eliminó a favor de config_split como se explica en este número, por lo que las soluciones aquí basadas en drush no me han funcionado.Aquí está la solución basada en la solución Duncanmoo usando el módulo config_exclude
1. Instale config_exclude usando Composer require --dev y configúrelo
permitir que settings.php se use en su entorno de desarrollo local
Agregue configuraciones config_exclude en el archivo local
Aquí hay algunas configuraciones de muestra
NOTA 1: config_filter es una dependencia config_exclude, por lo que si no necesita producción, puede excluirla arriba
NOTA2: El
settings.local.php
no es un requisito. Depende de si es controlado por su VCS o no.2. Compositor requiere --dev
Al habilitar un módulo que es puramente para desarrollo, use el indicador --dev:
Esto da como resultado que esas dependencias se agreguen al archivo composer.json en require-dev:
Entonces, si instala el sitio SIN sus módulos de desarrollo, use:
NOTA: En sus entornos de producción y producción, siempre debe hacer --no-dev
3. use drush cex como lo usa normalmente
no exportará ninguna de las configuraciones de los módulos excluidos
NOTA: He notado que la configuración de core.extension parece haber sido modificada después de ejecutar el comando anterior, pero el .yml correspondiente nunca se escribe en el disco duro (incluso después de confirmar
will be deleted and replaced with the active config
), por lo que no hay nada que comprometer, supongo que depende de partes internas del módulo config_excludefuente
Hay un problema interesante para Drupal 8.3.x: permitir que los módulos de desarrollo se excluyan de la exportación de configuración . El consenso general es que Configuration Split es actualmente la mejor solución.
Comentario de swentel :
Comentario de geerlingguy :
fuente
Configuración Split podría ser una solución viable para algunos.
https://www.drupal.org/project/config_split
fuente
Hay una buena manera de hacer esto, donde terminas con tus módulos de desarrollo comprometidos en el compositor por conveniencia y la configuración de esos módulos no se agrega a tu exportación de configuración (hay 2 partes):
1. Composer requiere --dev Cuando habilite un módulo que es puramente para desarrollo, use el indicador --dev:
Esto da como resultado que esas dependencias se agreguen al archivo composer.json en require-dev:
Entonces, si instala el sitio SIN sus módulos de desarrollo, dice:
NB: en sus entornos de producción y producción, siempre debe hacer --no-dev
2. Use el módulo config_split
El módulo de división de configuración le permite crear agrupaciones de exportación de configuración que se pueden habilitar o deshabilitar en un entorno.
En realidad tengo 3 divisiones:
fuente
Hice un pequeño guión para hacerlo todo de una vez.
fuente
También puede ver el módulo Ignorar configuración .
fuente
Puede usar un módulo de anulación de implementación para esto. Lea el siguiente enlace para obtener una descripción detallada:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
Sin embargo , la mejor forma de hacerlo sería deshabilitar su módulo en local y luego exportar la configuración.
Drupal proporciona una forma de anular los ajustes de configuración
settings.php
, pero no son válidos para deshabilitar / habilitar módulos.De
default.settings.php
:fuente