Foros del Web » Programando para Internet » PHP »

Cómo versionamos los cambios en la base de datos?

Estas en el tema de Cómo versionamos los cambios en la base de datos? en el foro de PHP en Foros del Web. Este es un tema que siempre me provoca dudas. Con Subversion o Git, uno tiene bajo control el código, entre varios desarrolladores, versionado, tags, branchs, ...
  #1 (permalink)  
Antiguo 10/09/2009, 09:04
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Cómo versionamos los cambios en la base de datos?

Este es un tema que siempre me provoca dudas. Con Subversion o Git, uno tiene bajo control el código, entre varios desarrolladores, versionado, tags, branchs, blablablas, y todo el rollo.

Pero a la hora de versionar o de mantener ordenados los cambios que se realizan en la Base de Datos, comienzo a dudar, a pensar estrategias que nunca se terminan aplicando y al final, todos desarrollan sobre la misma base y luego se aplica a producción.

Qué conocen o cómo desarrollan al respecto de este tema? Se que RoR tiene un administrador de cambios en la base de datos, que general archivos .sql incrementales para tener controlados los cambios, pero existe o utilizan algo parecido en PHP?

Gracias por sus respuestas !
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #2 (permalink)  
Antiguo 10/09/2009, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo versionamos los cambios en la base de datos?

Tema trasladado desde PHP Orientado a Objetos.

Desconozco si hay alguna herramienta programa en PHP, pero las herramientas más usadas para esto es Subversion o CVS, ya que son las que tienen más plugins en varios IDEs.

Para subversionar directamente la base de datos, creo en el foro de bases de datos te podrían ayudar más ya que es más dependiente del RDBMS.

Saludos.
  #3 (permalink)  
Antiguo 10/09/2009, 10:35
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: Cómo versionamos los cambios en la base de datos?

GatorV,

Dejé el tema en POO ya que considero esto una técnica un tanto más avanzada que lo habitual, no porque la solución dependa de un producto como SubVersion (ya algo viejo) o CVS (viejísimo), sino que esto es más una táctica que se utiliza al crear las bases de datos, es la experiencia de la gente lo que resuelve este tipo de problemas.

Eso, o algún desarrollo mismo en PHP que te permita identificar los cambios que se realizen en una base de datos, y automáticamente guarde un log de esos cambios en archivos .SQL, para luego poder aplicar los cambios de ser necesario re-crear la base de datos. Como programar SVN, pero para MySQL, pero en PHP.

Esperemos que aquí el mensaje no se pierda en el maremoto de mensajes que suele haber.
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #4 (permalink)  
Antiguo 10/09/2009, 13:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo versionamos los cambios en la base de datos?

En ese caso tendrías un poco de más suerte en el foro de Ingeniería del Software y Gestión de Proyectos ya que estas hablando de temas mas de manejo del proyecto que de programación.

De la parte de PHP no puede hacer mucho más de lo que le alimente la base de datos. Si estas usando MySQL puedes habilitar la auditoria de tu base de datos para que guardes en los logs, cada query que se envio, y posteriormente desde PHP filtrar este log por los cambios que caigan en la categoria DDL (como ALTER, CREATE, etc) y en base a eso sacar los que cambian la base de datos como tal.

Saludos.
  #5 (permalink)  
Antiguo 10/09/2009, 14:34
Avatar de Webstudio
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 69
Respuesta: Cómo versionamos los cambios en la base de datos?

Bueno, eso es una opción más que interesante la que me estás contando...
Si tengo la chance de activar esos logs, y luego parsearlos para identificarlos y separarlos, seguramente puedo hacer un script en no mucho tiempo que me genere tanto el código para hacer un .sql que cree las modificaciones, asi como para deshacerlas en todo caso.

Aunque lo ideal sería que estas modificaciones se ejecuten automáticamente hasta cierto punto.

Nada, es mucho para investigar, para desarrollar. Vos trabajaste con algo así en algún momento? teniendo que utilizar SVN para el código y algo más para MySQL?
__________________
Tutoriales Photoshop | Web-Studio.com.ar
Artículos PHP | ZonaPHP.com
  #6 (permalink)  
Antiguo 10/09/2009, 14:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Cómo versionamos los cambios en la base de datos?

Yo en lo personal en mis proyectos actuales parte de la forma de trabajo es, cada que hay un cambio en cuanto a la definición de datos, se exporta el .sql que crea la base de datos y se guarda en una carpeta SVN, y se sube como parte de los cambios en cuanto a código. Así podemos tener un historial de cambios y podemos hacer un diff fácilmente de cambios entre versiones y así migrar los datos.

Hay herramientas que verisionan bases de datos solo que nunca las he probado ya que esta forma de trabajo le sirve a mi equipo de trabajo y es mas eficiente.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:08.