2010-09-06 16 views
5

A menudo, después de que se lanza un sitio de Drupal (6.x), tengo personas que comienzan a suscribirse e ingresan su propio contenido. Cada vez que se necesita una actualización, la base de datos de producción se copia en dev y luego el desarrollo se realiza en dev, luego se empuja a la puesta en escena para la aprobación del cliente.Sincronización del sitio de Drupal entre desarrollador, montaje y producción

Cuando el sitio finalmente está listo para activarse, hay un problema. El servidor de producción tiene el último contenido ingresado por el usuario, el desarrollo y la distribución tienen la última funcionalidad. Simplemente sobrescribir la base de datos en producción no funcionará. Lo que suelo hacer es escribir lo que se ha hecho a dev y seguir los pasos para volver a implementar las implementaciones en la producción. A medida que el sistema crece, un solo error en la producción puede causar la pérdida de negocios. No puedo cerrar el sitio por varias horas. No puedo decir cuántas personas usan el sitio en un momento determinado, sin embargo, es imposible esperar un momento en el que nadie esté en el sitio para realizar la actualización.

¿Alguien tiene alguna idea?

Gracias de antemano.

Respuesta

4

Hay dos conceptos que debe tener en cuenta: El primero es "Exportables" que generalmente es una forma de exportar toda la configuración de un módulo determinado. El segundo es "Features" (terriblemente llamado, sí) que es una manera de agrupar un conjunto de Exportables en un conjunto de cambios determinado para control de versiones, actualización, implementación, retrotracción, etc.

Para aclaración, muchos módulos implementan sus propios La metodología "Exportables" a la que me he vinculado anteriormente era el módulo Exportables. Aquí hay una estrategia más amplia: http://www.sthlmconnection.se/tips-and-tweaks/exportable-configuration-your-drupal-module-ctools

4

Es la pregunta del millón: ¿Cómo transferir código, configuración y contenido entre diferentes sitios de Drupal? En Drupal, el código se almacena en archivos (o al menos debería serlo) mientras que la configuración y el contenido generalmente están en la base de datos.

Llevar el código de un servidor a otro no es tan difícil, y el código tiene otra ventaja: es fácil de almacenar y administrar en un sistema de control de versiones como SVN o GIT. Es por eso que la mayoría de las soluciones se centran en sacar cosas de la base de datos y ponerlas en el código.

Ya mencionado por CaseySoftware, el módulo Features es lo que necesita para almacenar la configuración en el código. Features tiene un lanzamiento estable desde hace un par de semanas y la comunidad parece estar de acuerdo en que Features es el camino a seguir.

Mover contenido entre sitios es un poco más difícil, porque el contenido se puede agregar o cambiar en el desarrollo, la preparación y la producción simultáneamente. Exportables es un intento de resolver eso, pero no es el único. Asegúrese de consultar también Deploy y los módulos basados ​​en características UUID Features Integration. Ninguno de esos módulos es estable y el tiempo dirá cuál es la mejor solución.

+0

Thx. Eso es exactamente lo que estoy tratando de resolver, pero no estoy seguro de si hay alguna solución hecha por ahí. Es bastante interesante, creo que acabo de quitarle a Drupal todo lo que he pensado hacer con Drupal, hay un módulo para eso. Leí y escribí hace un tiempo usando Feature and Context para administrar este problema. Después de intentar por un tiempo, encuentro que el módulo Contexto no es muy estable. Exportar es el camino a seguir, pero el problema es que cada módulo tiene sus propias herramientas de exportación. Con el tiempo, aún tengo que hacer un seguimiento de las posibilidades de cada actualización. –

+1

El artículo que menciono destaca que el objetivo fundamental de lograr este objetivo es separar la configuración y el contenido, en otros aspectos, dejar que SVN administre la configuración y los datos más recientes siempre provengan de la base de datos de producción.En mi opinión, está bien si las configuraciones están en la base de datos siempre y cuando Drupal pueda presentar una convención de nomenclatura que claramente separe las tablas que contienen solo configuraciones y tablas que contienen solo datos de usuario. –

Cuestiones relacionadas