¿Cómo puedo mantener mi proyecto de base de datos visualstudio sincronizado con mi base de datos?

11

Me gustaría sincronizar mi esquema de base de datos con mi proyecto de base de datos Visual Studio .dbproj.

En este momento, estoy usando SSMS para la mayor parte del trabajo de desarrollo de mi base de datos, y tengo que usar manualmente la herramienta de comparación de esquemas de Visual Studio cuando necesito sincronizar el esquema db y el .dbproj. ¿Por qué querría esto? porque :

  • Es la única forma de registrar cambios
  • Es la única forma de aplicar cambios.
  • Si no lo hace, se producirán algunos problemas de fusión al obtener archivos (básicamente, si un "get latest" contiene algunos cambios db en los objetos db que he estado actualizando sin verificarlos, no se activará una fusión, y es fácil realizar un seguimiento de qué versión es cuál)
  • Es bueno poder usar las funciones de búsqueda de VisualStudio en una versión actualizada del esquema
  • Es bueno poder modificar los procedimientos almacenados de VS (generalmente cuando ha cambiado el nombre de un archivo) utilizando los resultados de búsqueda.

Además de automatizar la herramienta de "comparación de esquemas" para que se ejecute cada 5 minutos (que difícilmente parece una solución "limpia"), ¿hay maneras de lograr esto?

Me gustaría seguir usando SSMS si es posible, pero también me interesan las formas de propagar automáticamente los cambios realizados mediante el "Explorador de servidores / Conexiones de base de datos" de Visual Studio al .dbproj.

Brann
fuente
¿Encontró una manera de sincronizar su proyecto de base de datos con SSMS?

Respuestas:

4

SQL Server Management Studio es principalmente una herramienta de ADMINISTRACIÓN de SQL Server y, como tal, no está necesariamente diseñada para admitir los escenarios que está buscando.

Visual Studio Team System 2008 Database Edition y Visual Studio Team System 2010 Pro / Ultimate incluyen las herramientas de desarrollador de base de datos (VSDB) para ayudar a aquellos con grandes recursos de bases de datos a integrar su esquema / vista / proc / etc. desarrollo con su desarrollo de aplicaciones.

VSDB le permite realizar ingeniería inversa de los esquemas de bases de datos existentes en proyectos de Visual Studio para que pueda controlar los archivos de script de elementos de esquema de origen. También puede modificar / crear scripts de esquema de SQL Server para la creación de prácticamente todos los elementos de esquema compatibles con SQL 2005/2008/2010.

VSDB también admite la capacidad de implementar actualizaciones de esquemas de bases de datos completas / parciales en bases de datos vacías / existentes donde realiza una ENORME cantidad de trabajo para tratar de aplicar solo los cambios necesarios para modificar la base de datos existente (si está presente) para que refleje la estructura de el proyecto de base de datos VSDB de origen.

VSDB también incluye una serie de herramientas para ayudarlo a comparar esquemas entre proyectos de bases de datos y / o proyectos de bases de datos y también le permite diferenciar y fusionar el contenido de la tabla.

Sin embargo, tenga en cuenta que si bien este conjunto de herramientas es compatible hoy, el equipo se ha desmantelado y el producto está en modo de mantenimiento. El grupo de productos SQL Server ahora tiene la responsabilidad de crear herramientas para desarrolladores y están trabajando arduamente para hacer eso :)

Richard Turner
fuente
1
Ya soy un usuario de las características de VS 2010 db. Pero aún no he encontrado cómo usarlo para modificar instantáneamente tanto mi proyecto de base de datos como mi proyecto de base de datos al mismo tiempo. Ejecutar un esquema de comparación después de cada modificación es demasiado complicado ... :(
Brann
Después de haber comenzado a mirar VSDB ayer, su último párrafo me parece bastante alarmante. ¿Parece que no debería molestarme en invertir mucho tiempo o energía ...?
Benjol
1

Hay dos maneras que conozco con las características finales de VS2010 para hacer esto.

  1. Use SSMS u otra herramienta para editar el esquema de base de datos, luego ejecute la comparación de esquemas periódicamente (al final del día) y luego importe cualquier cambio de esquema al proyecto de base de datos.
  2. Edite los archivos en su proyecto de base de datos a través de VS y luego cree un paquete de implementación que se ejecute directamente en su base de datos o genere una secuencia de comandos para que ejecute para actualizar su esquema en la base de datos.
Ryathal
fuente
La segunda solución es, en mi opinión, la mejor solución. Puede configurar un proceso de implementación que solo requiera un clic. La edición de sus archivos en Visual Studio los eliminará automáticamente del control de origen. He trabajado con el primer método, pero siempre es difícil hacer comparaciones de esquemas. Además, al menos para mí, la herramienta de comparación de esquemas bloquea mucho Visual Studio.
Kris Harper el