Pensé que este era un caso de uso simple del nuevo sistema de gestión de configuración, pero no he tenido la suerte de descubrir cómo resolver esto:
Problema
Quiero almacenar la configuración en git y usar drush para exportar la configuración durante el desarrollo y luego, en la implementación, importar la configuración. Bastante similar a hacer una reversión de funciones en Drupal 7. Mi problema es que no quiero almacenar códigos de acceso en git para varias integraciones. Esto da como resultado que estas configuraciones se eliminen en
$ drush cim -y
Donde miré
Esperaba que hubiera una lista / configuración simple para las configuraciones que deberían excluirse en la importación / exportación. Parece que hubo en algún momento, pero debe haberse eliminado nuevamente, ya que está disponible en la versión actual de Drupal 8.
Miré cómo se realizan los cambios de configuración comparando el rango activo y de sincronización para ver si hay un lugar donde podría eliminar los cambios, este no parece ser el caso. Miré cómo drush importa la configuración ya que tiene algunas exclusiones de configuración propias, pero no parecía que esto fuera extensible. Lo miré ConfigEvents
, pero todo esto parece suceder después de una importación, por lo que no parece que se pueda usar.
¿Me estoy perdiendo algo o no es posible simplemente excluir configuraciones de importación / exportación?
fuente
Puede usar el módulo "Ignorar configuración": https://www.drupal.org/project/config_ignore
fuente
Puede usar una combinación de config_ignore y config_split para esto.
Config ignore le permite ignorar un subconjunto de entidades de configuración durante la importación (también evita las eliminaciones desde la versión 2.x). Desafortunadamente, no impide excluir la configuración durante la exportación.
Para excluir entidades de configuración durante la exportación, puede usar config_split, crear una nueva entidad config_split y dejar la carpeta vacía. Esto evita que la configuración se exporte al sistema de archivos; en cambio, lo exporta a la base de datos.
Escribí Excluir configuración de la administración de configuración en Drupal 8 sobre este tema.
fuente
Para dividir las configuraciones, puede usar https://www.drupal.org/project/config_split .
Puede dividir las exportaciones en diferentes directorios que luego puede ignorar.
Hubo una muy buena presentación en drupal con dublin 2016 por parte de los responsables de la iniciativa CMI que les insto a que revisen sin importar qué.
fuente
Acabo de probar @berdir en la respuesta n. ° 1 y funciona perfectamente. Solo agrego una pequeña nota: tienes que poner toda la configuración en esta var, completa. Sin ello, $ config var no se ejecuta correctamente.
Algo como esto:
Documentación: https://www.drupal.org/node/1928898
Nota de la documentación anterior: "Tenga en cuenta que los valores anulados a través de $ config dentro de settings.php no serán visibles desde la interfaz de administración de Drupal".
fuente
$config['module.settings']['some']['value'] = 'foo';
De alguna manera me pregunto por qué nadie mencionó las herramientas Drush CMI por ahora. Las palabras mágicas son
drush cexy
yconfig-ignore.yml
. Tendrás una lista que puedes ajustar. Lo necesitábamos una vez para excluir las instancias de bloque mientras que al mismo tiempo se procesaban las bases de bloque.Fuente: https://www.previousnext.com.au/blog/introducing-drush-cmi-tools
Fuente: https://github.com/previousnext/drush_cmi_tools
fuente
Usar config split (recomendado)
El módulo de división de configuración se hizo específicamente para esta necesidad.
La división de configuración está integrada con drush.
Usar solo Drush
Drush también se supone que puede hacer eso usando la
--skip-modules
bandera.Puede agregar las siguientes líneas en un drupal / drushrc.php en la raíz web de su proyecto para hacerlo automáticamente.
Ver http://www.drush.org/en/master/config-exporting/#ignoring-development-modules
Lamentablemente, hay un error con esta funcionalidad: https://github.com/drush-ops/drush/issues/1820 . Entonces, por el momento, también necesita agregar esos archivos de configuración en su .gitignore para que los archivos de configuración exportados no se comprometan. Es posible que abandone esta funcionalidad (con errores) de drush a favor de la división de configuración.
fuente