drupal 8 – ¿Cómo exporto e importo tipos de contenido (incluidos campos) entre entornos?

Pregunta:

He estado tratando de encontrar una forma inteligente de exportar el tipo de contenido y todos sus campos de una instalación de Drupal a otra. La exportación principal de "Sincronización de configuración" solo exporta el tipo de contenido, pero no sus campos y configuración.

Hasta ahora no he encontrado nada aplicable para Drupal 8. Todo lo que puedo encontrar son menciones de que esta funcionalidad es posible en el módulo de Drupal 7 llamado Bundle Copy, que nunca fue portado correctamente para 8 .

También probé esto , sin embargo, no puedo encontrar ninguna buena documentación sobre cómo funciona "drupal config: import" o "drupal config: import: single".

¿Es realmente tan difícil exportar e importar tipos de contenido entre entornos o me he perdido algo esencial?

Respuesta:

Gestión de la configuración

La implementación de tipos de contenido, campos, vistas, configuraciones del sitio (todo lo que no es contenido) de un entorno (local) a otro (etapa, producción, etc.) en Drupal 8+ funciona exportando la configuración actualmente activa (almacenada en la base de datos) a Archivos YAML. El enfoque más común es simplemente exportar toda la configuración de su sitio a la vez. Drupal se encarga de eso. Simplemente especifique la carpeta donde desea que se ubiquen estos archivos YAML en su proyecto (en el mejor de los casos, fuera de la raíz de Drupal). Luego cargó todos estos archivos YAML o git push y git pull a otro entorno e importó toda la configuración allí en la base de datos. La exportación e importación se pueden realizar mediante la interfaz de usuario o mediante Drush .

Ahora, cuando agrega nuevas funciones a su sitio localmente (un nuevo tipo de contenido con campos, por ejemplo), simplemente exporta la configuración completa nuevamente. Con algún sistema de control de versiones como Git, verá que la mayoría de los archivos YAML ya existentes no cambiaron y solo se agregaron algunos archivos YAML nuevos. Simplemente cargue / inserte los cambios o los nuevos archivos en otro entorno donde vuelva a importar la configuración. Se debería haber creado el nuevo tipo de contenido con los campos.

Configuración dividida / ignorada

Por supuesto, las cosas pueden volverse más complejas de lo que describí anteriormente, especialmente cuando se trabaja con muchas personas en proyectos con muchas funciones y mucho contenido. Entonces puede ser necesario que desee que se ignoren algunas configuraciones para que no se exporten o importen. Supongamos que desea evitar que se exporten algunas claves API. O desea evitar que alguna configuración en el sitio en vivo se restablezca cuando vuelva a importar la configuración. O tal vez siempre desee tener algunos módulos adicionales habilitados solo localmente durante el desarrollo. Luego está el módulo Config Ignore y Configuration Split para cubrir eso.

Exportar / importar configuración aislada

Básicamente, esta ha sido la forma en que solía implementar la configuración en Drupal 7. Ahora, este enfoque se puede usar durante el desarrollo local para sincronizar, por ejemplo, solo un tipo de contenido aislado o tipo de párrafo y sus campos en muchas instancias de múltiples sitios. Por supuesto, puede reconstruir el tipo de contenido en cada instancia manualmente usted mismo, pero también puede usar el módulo Características para que cree un módulo para usted que solo contenga la configuración de este tipo de contenido aislado y sus campos. Luego, simplemente habilite este módulo de funciones en todas las demás instancias de sitios múltiples para que el tipo de contenido también se cree allí. Y finalmente exporte la configuración en todas las instancias para la implementación como se describe en "Administración de la configuración".

Cuando ahora cambie el tipo de contenido en una instancia, las funciones reconocerán estos cambios y le permitirán recrear el módulo de funciones que luego también contiene los cambios. Las características reconocerán estos cambios en todas las demás instancias en las que este módulo esté habilitado y podrá volver a importar los cambios a la base de datos de cada instancia; después de lo cual finalmente exporta la configuración global de cada instancia nuevamente, para su implementación. Dado que cada módulo de funciones en realidad es simplemente otro módulo de Drupal, también puede usarlos para llevar una determinada función aislada, como un tipo de contenido y sus campos, a cualquier otro sitio de Drupal 8+ no relacionado.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım