Pregunta

Por favor, discúlpeme, hoy es mi primer día tratando de configurar un entorno de CI usando TeamCity. Estoy desarrollando una aplicación ASP.NET/Sql Server y hasta ahora tan bueno. MSBuild es el profesional.

Me gustaría saber cuáles son las opciones cuando se trata de hacer automáticamente seguro de cambios en mi base de datos local se cargan en el servidor de prueba como parte del proceso de integración. Ahora no estoy muy seguro de que quiero ir en la dirección de DBGhost para sincronizar automáticamente los cambios de esquema, yo estaría feliz de simplemente reemplazar la base de datos en el servidor de prueba con una copia de mi base de datos local.

¿Cuáles son mis opciones aquí?

editar: una mayor investigación muestra los productos Redgate SQL son buenos para esto. Ellos enviaban barato. Tienen un buen libro blanco sobre el uso de sus productos dentro de un proceso de integración continua: http: // downloads .red-gate.com / HelpPDF / ContinuousIntegrationForDatabasesUsingRedGateSQLTools.pdf

¿Fue útil?

Solución

En primer lugar, creo que la base de datos se debe incluir en su estrategia de control de código fuente. principios básicos para lograr esto han sido muy bien resumido en K. Scott Allen serie . También puede comprobar evolutiva Diseño de base de datos por Martin Fowler . Y para más información práctica, comprobar las respuestas a ¿Cómo se debe construir su base de datos de control de código fuente? .

Como he escrito en mi respuesta , mantengo dos conjuntos de secuencias de comandos: un conjunto que puede construir la base de datos a partir de cero, y que puede actualizar una base de datos dada de una versión a la última. Como parte de una estrategia de CI:

  • La base de datos en el servidor de CI debe ser reconstruido desde cero utilizando estas secuencias de comandos. A continuación, puede comprobar que las secuencias de comandos están en condiciones de trabajo.
  • En un mundo perfecto, que debe ser capaz de realizar una actualización de la versión N-1 a N versión de la base de datos, y comparar el esquema obtenido en el esquema de la base de datos anterior. Todavía estoy trabajando en ella ...
  • datos
  • prueba deben ser inyectados en la base de datos, lo que permite la unidad de pruebas de su aplicación a realizar (se podía uso BCP para esto).
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top