content-management-system votingapi - Trabajando con control de versiones en un proyecto de Drupal / CMS




widgets fivestar (4)

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.

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.


Answers

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 simplificar el mantenimiento de las bases de datos de desarrollo y mejora, echaría 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 horario de mayor audiencia ...


Tiene razón en que este 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 esta, que trata sobre el control de versiones 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. (Aunque eso fue un ejercicio de desarrollo y no una cosa habitual que hacer con bloques).

Eche un vistazo al trabajo que Development Seed está haciendo para solucionar este problema. Están liderando el desarrollo de los módulos Context , Features y Spaces que trabajan 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 discutir las diversas soluciones que se están desarrollando para este problema.


Hay un gran esfuerzo de envío de la próxima versión drupal con 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.


Sí. Aquí hay un ejemplo para restablecer la contraseña del usuario administrador de Drupal dado que conoce el ID de usuario (uid):

drush sqlq "update {users} set pass=md5('new_password_here') where uid=1"




drupal content-management-system controls version