Tenemos muchos entornos¿Cómo se mantienen múltiples versiones de bases de datos?
tronco (integración dev) -> devel (pruebas de equipo) -> qa (pruebas de regresión) -> vivir (uso del cliente)
Cada uno tiene su propia base de datos que funciona con el código en ese ambiente
Parte del contenido de la base de datos son metadatos y parte son datos. Por ejemplo, si está creando un informe, las columnas que puede elegir para generar el informe son metadatos, pero los informes que un usuario ya ha creado son datos. Los metadatos fluyen por la cadena de promoción (se introducen en el tronco y van devel-> qa-> en vivo), junto con el código a medida que se prueba. Sin embargo, los datos no se promocionan. Además, los datos en un entorno determinado no deben borrarse o corromperse y continuar funcionando después de que se haya promocionado ese entorno.
¿Qué buenas estrategias existen para administrar e igualmente importantes, automatizar tal configuración?
Estamos utilizando .NET/C#/SQL Server pero creo que este problema es genérico y debe tratarse de forma general para cualquier aplicación madura que tenga un gran número de desarrolladores trabajando en él, y se preocupa por los datos los usuarios generan en él.
Específicamente, si le interesa saber cómo tratar los datos estáticos de forma diferente a los datos transaccionales, puede probar SQL Source Control v2.0 EA que se describe aquí: http://www.red-gate.com/MessageBoard/ viewtopic.php? t = 12298 –