Pregunta

tengo una pequeña cantidad de experiencia en el uso de SVN en mis proyectos de desarrollo, y tengo tan poca experiencia con bases de datos relacionales. Conozco los conceptos básicos como tablas, y las sentencias SQL, pero estoy lejos de ser un experto.

Lo que me gustaría saber es si hay sistemas de control de versiones genéricas de tipo como SVN, pero que el trabajo con una base de datos en lugar de archivos. Me gustaría que el mismo tipo de características que se obtiene con SVN como la capacidad de crear ramas, crear etiquetas, y fusionar ramas juntos. En lugar de un número de revisión que se asocia a una versión de un depósito de archivos que estaría asociado con una versión de la base de datos.

Son sus soluciones genéricas disponibles que puede agregar este tipo de funcionalidad independiente del esquema de base de datos real? Yo estaría interesado en soluciones que trabajan con MySQL o MS SQL Server.

También debo aclarar que yo estoy tratando de control de versiones de los datos no el esquema. Yo esperaría que el esquema permanezca constante. Así que en realidad parece como si yo quiero una manera de crear un registro de todos los comandos INSERT, UPDATE y DELETE solicitudes enviadas al la base de datos entre cada versión de los datos. De esta manera cualquier versión podría ser recreada mediante el reenvío de todas las sentencias SQL que se han guardado hasta la versión deseada.

¿Fue útil?

Solución

Se puede script toda su DDL, procedimientos almacenados y como a archivos de texto normales.

A continuación, puede simplemente usar SVN para el control de versiones de bases de datos.

Otros consejos

Nunca he encontrado una solución que funciona tan bien como la subversión, pero aquí hay algunas cosas que he hecho que han ayudado a:

  1. Hacer guiones que crearán el esquema y rellenar los datos iniciales. A continuación, hacer un script de actualización para cada cambio después de eso. Es un proceso bastante manual, pero funciona. Hay cosas adicionales que ayudan al igual que almacena el número de versión actual en una tabla en la base de datos y asegurarse de que los guiones son idempotente .

  2. Guarde el DB pleno desarrollo en Subversion. Esto por lo general no funciona demasiado bien para mí si hay una gran cantidad de datos o se cambia con frecuencia. Sin embargo, en algunos proyectos es podría funcionar.

Me mantener y conservar crear secuencias de comandos en mi sistema de control de versiones.

Hay dos cosas que se me ocurren:

  • http://www.liquibase.org/ - proporciona una manera de gestionar los cambios de base de datos general. Crea archivos que se confirmen a control de código fuente, y ayuda a gestionar los cambios a través de diferentes bases de datos de desarrollo, etc.
  • http://www.viget.com/extend/ copia de seguridad de base de datos-su-en-GIT / - esto describe una estrategia de copia de seguridad de una base de datos en el control de código fuente, pero la misma estrategia se puede utilizar sólo en el esquema. En este esquema, la base de datos estaría en una zona separada de su código principal. (Esto se puede utilizar con otros sistemas de control de fuente también.)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top