Saltar al contenido

Drupal: ¿cómo exporto e importo tipos de contenido (incluidos los campos) entre entornos?

Siéntete libre de compartir nuestros tutoriales y códigos con otro, apóyanos para ampliar nuestra comunidad.

Solución:

Está en el camino correcto con la exportación de configuración, pero supongo que hizo la opción de exportación única para el tipo de contenido. Cada campo de su tipo de contenido tiene varios elementos de configuración que también deben exportarse.

Una alternativa es usar el módulo Funciones. Esto le permitirá seleccionar su tipo de contenido. También recopilará automáticamente todos los elementos de configuración necesarios para exportarlos.

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) en 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 ambiente y importar toda la configuración allí en la base de datos. La exportación y la 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 exportar toda la configuración de nuevo. 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/envíe los cambios o los nuevos archivos a otro entorno donde importar la configuración de nuevo. El nuevo tipo de contenido con los campos ahora debería haberse creado.

Dividir/ignorar configuración

Por supuesto, las cosas pueden volverse más complejas de lo que describí anteriormente, especialmente cuando se trabaja con muchas personas en proyectos ricos en funciones y contenido. Entonces puede ser necesario que desee que se ignoren algunas configuraciones para que no se exporten o importen. Digamos que desea evitar que alguna API keys ser exportado. O desea evitar que se restablezca alguna configuración en el sitio en vivo 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.

Exportación/importación de configuraciones aisladas

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 sitios múltiples. Por supuesto, puede reconstruir manualmente el tipo de contenido en cada instancia, pero también puede usar el módulo Funciones 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 su implementación como se describe en “Gestió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. Estos cambios serán reconocidos por las funciones en todas las demás instancias donde este módulo esté habilitado y puede volver a importar los cambios en 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 traer una determinada función aislada, como un tipo de contenido y sus campos, a cualquier otro sitio de Drupal 8+ no relacionado.

En mi opinión, la mejor manera es usar el flujo de trabajo de git. Lo que hacemos para exportar la configuración del tipo de contenido con campos entre los entornos es que tomamos una rama de características de git y creamos el tipo de contenido y sus campos correspondientes en nuestro entorno local y creamos un drush cex. Ahora en la rama de git solo tenemos la configuración relacionada con el tipo de contenido en particular.

Una vez que se exporta la configuración, creamos un módulo personalizado e incluimos esa configuración en el directorio config/install en el módulo y habilitamos ese módulo en todos los sitios requeridos.

Aquí está el ejemplo de tal exportación de configuración

https://git.drupalcode.org/sandbox/Bhanu951-3103712/-/tree/8.x-dev/card_content

Si la configuración exportada depende de otros módulos. Definimos los módulos requeridos en info.yml. Para que no tenga problemas al habilitar ese módulo en un sitio diferente.

Te mostramos las comentarios y valoraciones de los lectores

Si conservas algún contratiempo o capacidad de ascender nuestro artículo te sugerimos escribir una explicación y con deseo lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *