Pregunta

Estoy buscando algunas "mejores prácticas" para automatizar la implementación de procedimientos almacenados/vistas/funciones/cambios de tabla desde el control de fuente.Estoy usando StarTeam y ANT para que el etiquetado esté a cargo;Lo que estoy buscando es cómo algunos de ustedes han abordado la automatización de la extracción de estos objetos desde la fuente, no necesariamente StarTeam.

Me gustaría terminar con un script que luego pueda ejecutarse, registrarse y etiquetarse.

NO estoy pidiendo a nadie que escriba eso, solo algunas ideas o enfoques que han funcionado (o no) en el pasado.

Estoy tratando de limpiar un desastre y quiero asegurarme de hacerlo lo más "correcto" posible.

Estamos almacenando las tablas/vistas/funciones, etc.en archivos individuales en StarTeam y nuestra base de datos es SQL 2K5.

¿Fue útil?

Solución

Usamos Comparación SQL de redgate (http://www.red-gate.com/).

Tenemos una base de datos de producción, una base de datos de desarrollo y cada desarrollador tiene su propia base de datos.

La base de datos de desarrollo se sincroniza con los cambios que un desarrollador ha realizado en su base de datos cuando registra sus cambios.

El desarrollador también registra un script de sincronización y un informe de comparación generado por SQL Compare.

Cuando implementamos nuestra aplicación, simplemente sincronizamos la base de datos de desarrollo con la base de datos de producción usando SQL Compare.

Esto funciona para nosotros porque nuestra aplicación es sólo para uso interno.Si este no es su escenario, entonces miraría SQL Packager (también de redgate).

Otros consejos

Comprobar en Migraciones (señalado por andres pedro en otra publicación)

Prefiero separar vistas, procedimientos y desencadenantes (objetos que se pueden recrear a voluntad) de las tablas.Para vistas, procedimientos y activadores, simplemente escriba un trabajo que los revise y vuelva a crear lo último.

Para las tablas, prefiero tener una tabla de versión de base de datos con una fila.Utilice esa tabla para determinar qué nuevas actualizaciones no se han aplicado.Luego se aplica cada actualización y se actualiza el número de versión.Si una actualización falla, solo tiene que verificar esa actualización y puede volver a ejecutarla sabiendo que las actualizaciones anteriores no volverán a ocurrir.

Como señaló Carl, puede utilizar una utilidad de diferenciación para crear sus scripts de actualización.RedGate es un buen producto, pero SQL Server 2k5 viene con TablaDiff que también debería hacer el trabajo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top