2010-05-23 19 views
39

Me preguntaba cómo los equipos que desarrollan sitios usando Drupal (o cualquier otro CMS) integran control de versiones, subversión, git o similar en su flujo de trabajo. Obviamente, querrás que tu código personalizado y archivos de tema estén bajo control de versión, pero cuando usas un CMS como Drupal, gran parte del trabajo consiste en configurar módulos y configuraciones, todo lo cual se almacena en la base de datos.Trabajando con control de versiones en un proyecto de Drupal/CMS

Entonces, cuando eres un equipo de desarrolladores, ¿cómo colaboras en un proyecto como este? Volcar la base de datos en un archivo y poner ese archivo bajo control de versiones podría funcionar, supongo, pero cuando el sitio está en vivo, el cliente agrega contenido constantemente, lo que hace que la sincronización sea un poco problemática.

Me encantaría saber cómo otros están haciendo esto.

Respuesta

16

Tiene razón en que esto es un problema para Drupal: el control de versiones funciona bien hasta que le pasa el sitio a su cliente o lo abre a los usuarios.

Su pregunta parece ser una versión más específica de este one, que tocó el control de versión en el flujo de trabajo de Drupal. Puede encontrar algunas respuestas allí que ayuden.

Para algunos proyectos, he exportado todas las vistas al código, usando esa característica del módulo Vistas, y tengo un proyecto donde también se han exportado todos los bloques. (A pesar de que fue un ejercicio de desarrollo y no una cosa habitual que ver con bloques.)

Tome un vistazo a la obra que Development Seed está haciendo para evitar este problema. Están liderando el desarrollo de los módulos Context, Features y Spaces que funcionan en conjunto para almacenar datos de configuración en módulos (fuera del DB) para que puedan ser versionados con el código.

Hay un grupo de Drupal llamado Packaging & Deployment para analizar las diversas soluciones que se están desarrollando para este problema.

1

En este momento hay muchos esfuerzos para crear algo que manejará las dificultades de desarrollo -> producción con drupal en relación con la base de datos. Las características que los flaminglogos mencionaron son una, pero creo que está más centrado en la creación de proyectos independientes, es decir, los que se instalarían en muchos sitios.

Para un simple mantenimiento de las bases de datos de desarrollo y prod voy a echar un vistazo a http://drupal.org/project/deploy y http://drupal.org/project/dbscripts. Admiten la sincronización y fusión de datos de configuración de db side db.

No puedo garantizar que estén listos para el prime time, aunque ...

+0

El módulo Implementar se ve interesante en el screencast que está vinculado en su página de proyecto, y estoy de acuerdo en que es una buena solución para actualizar el contenido en un solo sitio. – flamingLogos

0

Hay una gran cantidad de esfuerzo de enviar la próxima versión de Drupal a la configuración en código. Esa es la clave para tenerlo en un sistema de versiones.

Por ahora puede usar el módulo de características, con el que puede exportar cosas como tipos de contenido, vistas, etc. para codificar, y luego comparar, versión y revertirla cuando lo necesite.

Cuestiones relacionadas