¿Es posible usar MS VS base de datos del proyecto como una solución completa para el control de versiones de bases de datos?

StackOverflow https://stackoverflow.com/questions/4137844

Pregunta

En nuestro proyecto tenemos varias bases de datos de producción y muchos desarrolladores. Cada base de datos de producción representa un poco de "versión / localización sub-proyecto". Utilizamos SQL Server 2008.

Por lo tanto, la necesidad de desarrollar la estrategia de versiones de base de datos utilizando MS Visual Studio Base de datos del proyecto. He leído un montón de artículos sobre la base de datos de versiones y proyectos de bases de datos, pero todavía tengo un montón de preguntas:

  1. ¿Cómo debería implementar los desarrolladores Los cambios en la suya db proyecto? (Mejores prácticas)

  2. ¿Cómo generar el 100% viable "Última versión" script deploy sin intervención humana (se pierden algunos objetos, la reescritura de algunos cambios, etc)?

  3. ¿Cómo gestionar los cambios de datos con EM Proyecto de base de datos de Visual Studio? yo saber acerca de las secuencias de comandos pre / post de implementar, pero creo que no puede resolver este problema. (Ejemplo: I necesidad de establecimiento nuevo de correspondencias alguna tabla en otra).

La "solución ideal" sería:

  1. Los desarrolladores genera y mantiene la base de datos de proyectos de base de datos [ProductionDB].

  2. Con la nueva versión Puedo implementar la base de datos del proyecto a la [ProductionDB] con todo lo necesario cambios.

  3. Los desarrolladores cambia la base de datos del proyecto y escribe algunas secuencias de comandos de manipulación de datos para cambios concretos.

  4. Con la nueva versión Puedo implementar la base de datos del proyecto a la [ProductionDB] con todos los cambios necesarios.

Por lo tanto, la pregunta final: ¿Es Posible uso de la base de datos del proyecto para los fines descritos anteriormente o alguien utiliza escenario / solución similar

?

PD: Ya he leído después de los debates:

  1. cambia de versiones [cerrada]
  2. Cómo hacer que mi versión de MS base de datos SQL en SVN?
  3. en busca de solución para la base de datos de versiones
  4. ¿Existe un sistema de control de versiones de estructura de la base cambios?
¿Fue útil?

Solución

Proyecto de base de datos se utiliza precisamente para la mayor parte de las razones que se han mencionado aquí -

  1. Los desarrolladores acaba de partida de los archivos de comandos de base de datos, realizar los cambios, y comprobar de nuevo en. Eso sí que se van a cambiar los archivos .sql y no directamente los objetos presentes en cualquier base de datos prog. Así que si es necesario agregar dos columnas a una tabla de base de datos, se modifique el script de creación tablas de esta tabla, y no escribir una secuencia de comandos alter para esta tabla.

  2. Si usted tiene la versión antigua esquema de base de datos de destino - sólo puede implementar este proyecto con los archivos más recientes a esa base de datos y un script de implementación será creado (con las declaraciones necesarias alter). Hay un proyecto de ajuste que le permite opt si el script de implementación también debe ejecutarse contra el PP cuando 'desplegar'.

  3. El script de implementación puede ser un entregable que se prueba por separado frente a una copia prod y después se aplicó a prod como un parche.

Acerca de las secuencias de comandos de manipulación de datos no estoy muy seguro, sin embargo, para todos los demás fines que usted ha mencionado, un proyecto de base de datos es perfecto.

Otros consejos

Lo que he descrito es la razón por la que existe el proyecto de base de datos.

Para responder a sus preguntas:

  1. Es responsabilidad del desarrollador. Puede trabajar en el estudio visual y editar los archivos de proyecto directamente o editar una copia en vivo de la base de datos en Gestión de estudio y el uso del esquema comparar en VS para sincronizar los cambios de nuevo al proyecto. He estado usando durante unos meses y parece tanto funcionan bien, aunque tiendo a editar los archivos de proyecto directamente con más frecuencia.

  2. Implementación del proyecto genera versión más reciente si se comprueba la caja para dejar caer la primera db de destino. Puede hacerlo sin intervención humana llamando VSDBCMD durante su creación

  3. Los scripts de implementación pre / post son para justo lo que alude a. Un ejemplo sería la de seleccionar todos los datos de una tabla en una tabla temporal y trunca durante la pre-despliegue, deje que el mango proyecto de la migración de esquemas y luego añadir de nuevo durante la post-despliegue. Eso puede ser difícil, pero ese problema nunca ha sido más fácil de resolver.

Espero que esto ayude.

La cuestión de los datos es muy difícil de resolver. Aquí, en Puerta Roja que hemos tenido muchas solicitudes de esto para nuestro SQL herramienta de control de código fuente , que tiene paralelos con base de datos VS Proyectos. La buena noticia es que estamos añadiendo activamente el apoyo para esto, y debemos tener una acumulación temprana de probar antes de Navidad. Si está interesado, sólo tiene que inscribirse para recibir notificaciones de Acceso Temprano en http://www.surveymk.com/s / SqlSourceControl_EapSignup . Nos encantaría recibir sus comentarios.

Es posible que desee echar un vistazo a la de código abierto BSN ModuleStore conjunto de herramientas , que trata de poner en práctica este flujo de trabajo (y que en realidad hace también hacer más que eso).

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