Article

Configuración como código con Config Split: nunca haga cex de lo que un split oculta

Config Split mantiene la configuración específica del entorno fuera del directorio de sincronización canónico, pero ejecutar drush cex mientras un split está activo borra los archivos propiedad del split de config/sync. El modelo seguro: editar a mano las listas de miembros del split, verificar con cim en lugar de cex y encaminar los valores por entorno a través de anulaciones en settings.php en lugar del split.
July 14, 2026
Topics:Configuration Management
Tags:DrupalDrush

Config Split de Drupal mantiene la configuración específica de cada entorno fuera de su directorio de sincronización canónico: herramientas de desarrollo, un nivel de permisos solo para desarrollo, anulaciones por entorno. Funciona bien hasta que alguien ejecuta drush cex con un split activo y la mitad de config/sync desaparece del diff. Este es el modelo que lo evita.

Qué resuelve

Usted quiere una configuración canónica que se despliegue a producción, más unas cuantas cosas que existen solo en desarrollo: Devel, un nivel de permisos de agente más amplio, registro detallado. Config Split permite que un split con nombre sea dueño de esos elementos, de modo que viven en una carpeta separada y se activan condicionalmente (según una variable de entorno), mientras la configuración compartida permanece en config/sync.

La trampa: cex con un split activo

Cuando un split está activo, sus elementos se retiran del conjunto principal de exportación. Ejecute drush cex en ese estado y Config Split hace exactamente lo que está diseñado para hacer: escribe la configuración reducida y borra los archivos propiedad del split de config/sync. Si no pretendía reparticionar, acaba de preparar la eliminación de una gran parte de su configuración canónica. El diff de git es alarmante y, si lo confirma, el siguiente despliegue importa la eliminación.

El modelo de trabajo

  • No haga cex con un split activo. Trate las listas de miembros del split como configuración editada a mano: añada o quite un elemento editando el complete_list / partial_list propio del split, no exportando.
  • Verifique con cim, no con cex. Después de editar, ejecute drush cim y confirme que informa del cambio que usted pretendía y nada más. La importación no es destructiva para su fuente de verdad; la exportación, bajo un split, sí lo es.
  • Los valores específicos del entorno no pertenecen a un split en absoluto. Un cliente OAuth distinto por entorno, un secreto, un nombre de host: póngalos en una anulación $config[...] en settings.php que lea del entorno. Config Split es para elementos específicos del entorno (este módulo o perfil existe solo aquí), no para valores por entorno de un elemento compartido.
  • Cuando ponga un elemento en un split completo, ponga también sus dependientes. Un rol que existe solo en desarrollo debe llevarse consigo su configuración dependiente, o la importación falla en los otros entornos.

Conclusión

Config Split es un bisturí para "qué configuración existe en este entorno". Guíelo editando a mano las listas del split y verificando con cim; mantenga cex lejos de un split activo; y encamine los valores por entorno a través de settings.php, no del split. Acierte en esa separación y la configuración como código seguirá siendo confiable en todos los entornos.