17

Recientemente lo he probado (versión SQL 2008) y los encuentro bastante bien. Bueno, el único problema es que el asistente no es lo suficientemente inteligente como para actualizar la estructura de la base de datos sin borrar primero todos los datos. ¿Es por eso que estos proyectos no se usan en la práctica?¿Alguien que usa "proyectos de bases de datos" en Visual Studio?

En realidad, nunca he visto a nadie usándolos o alguna vez mencionando en absoluto. Tampoco se puede ver nada en blogs y foros a menos que lo busques explícitamente.

¿Qué les pasa?

+0

Shog deberías retroceder en el comentario sobre la comparación de los esquemas, esta es una pieza clave de datos y decirme que no está usando VS Data Dude. – JoshBerke

+0

Se ve mejor gracias ;-) – JoshBerke

Respuesta

9

Uso el proyecto de base de datos que forma parte de Visual Studio Database Edition. Esta es una gran herramienta. Básicamente, usted define el esquema completo, en crear secuencias de comandos que luego se verifican en el control de fuente. Luego tiene herramientas integradas para generar scripts de diferencia, que por cierto no eliminan los datos.

También tiene herramientas de comparación de datos para que pueda comparar datos entre bases de datos y generar el script para hacer que las bases de datos sean las mismas.

La reciente versión de GDR tiene algunas características interesantes añadidas. De tal manera que parece que si usas su método de implementación integrado, puedes generar un paquete de implementación que cuando lo ejecutes analizará la base de datos de destino y aplicará solo las diferencias.

Si tiene Team Studio - Team Suite o Development Edition, puede usar Database Edition.

Dale una oportunidad y es una gran evolución en el desarrollo de bases de datos

+0

¿me puede guiar a cómo generar secuencias de comandos de diferencia en vs? – vittore

+0

@vittore: Desde el menú de datos en comparación, seleccione esquema, compare ... – JoshBerke

5

Las usamos. Mantenemos todos nuestros scripts de creación/actualización de esquemas y procedimientos almacenados. El objetivo principal es que podemos conectar el proyecto a SourceSafe o SVN.

Es una manera fácil de mantener su versión de scripts SQL controlada.

Es algo extravagante tratar de hacer algunas pruebas SQL en VS, pero encuentra formas de evitarlo.

actualización

De hecho, tenemos que construye en nuestros scripts de implementación, nuestra herramienta de despliegue, pasa por el proyecto de base de datos (excepto las carpetas marcados) y corre todo el guión. Acabamos de construir una herramienta rápida para ejecutar el proyecto. Si alguien tiene otras soluciones para implementar el proyecto de DB que serían útiles.

8

Al igual que Glennular, los estamos utilizando para controlar la versión de nuestro esquema y s'procs.

Aunque tenemos una estructura de control de versiones bastante avanzada (CI, implementaciones automáticas para desarrollo, despliegues de un solo clic en el escenario y prod); no incluimos ninguno de los proyectos de DB en esa estructura. Simplemente no confiamos todavía.

ACTUALIZACIÓN: (para Out In Space)

Tenemos proyectos TFS separados para las áreas funcionales de la empresa (ventas, marketing, etc.). Dentro de cada proyecto TFS tenemos una carpeta Principal y de Producción. También tenemos un proyecto TFS que contiene los proyectos de la base de datos y otro que contiene ensambles comunes/proyectos de estudio visual.

Al momento de la publicación, pasamos de Principal a Producción. No tenemos una rama de etapas ya que nos movemos demasiado rápido para lidiar con eso.Correcto o incorrecto, nuestra productividad se mide en parte por la cantidad de lanzamientos de nivel de producción que hacemos por semana; correcciones de errores, nuevas características, etc.

CI se configura en la rama Principal de forma tal que cada verificación provoca que el servidor de compilación se despliegue en nuestros entornos DEV. Las pruebas de unidad y web se ejecutan y la calidad de construcción se establece automáticamente en "Desarrollo" si se completa con éxito. Cuando alguien cambia la Calidad de compilación a "En etapas" Esto hace que las compilaciones anteriores "En etapas" se configuren como "Rechazadas" y hace que esa compilación se envíe a nuestros servidores de transición mientras se actualizan los archivos de configuración para apuntar a los servidores correctos. (Utilicé scripts de TFS Deployer y PowerShell para esto).

QA hace pruebas en nuestros servidores de almacenamiento intermedio. Una vez que están contentos, el equipo de producción cambia la calidad de construcción a "producción". Esto hace que la construcción se envíe a un área de producción que luego se copia manualmente en la ubicación correcta. Una vez completada, la producción notifica al desarrollo quién luego ramifica esa versión en la carpeta de Producción. También se notifica a QA quién realiza una batería de pruebas de producción para verificar que todo funcione correctamente.

Tenemos informes configurados para mostrarnos los cambios que existen entre lanzamientos de producción para que sepamos cada control que se está implementando. Eso evita que aparezcan incógnitas, como un cambio de base de datos, etc. o algún otro código de interrupción.

Además, nuestros BA's están rastreando elementos de trabajo a través de Team System Web Access y saben cuándo están en producción.

Aunque nuestros DBA están utilizando Database Edition (GDR), no les ha impresionado el nivel de control de las implementaciones automáticas. Espero que Rosario traiga un mejor control de implementación a la línea de productos; pero hasta entonces tenemos TFS Deployer y powershell.

+0

¿Puede ampliar un poco su estructura de control de versiones? –

1

Usamos el proyecto de base de datos para proporcionar control de versión para nuestros scripts SQL. También nos gusta usar el entorno de Visual Studio para editar el SQL; es un poco más fácil de usar para algunos de nuestros desarrolladores más nuevos que el analizador de consultas.

1

Los he usado en algunos proyectos pagos y creo que es una gran herramienta. Eso dijo, he visto algunos problemas.

  1. Si el archivo .dat en la carpeta del proyecto db pierde la sincronización con la instancia temporal de la base de datos, comparación de esquemas dará resultados inexactos. No estoy seguro de cómo sucede esto, el esquema de revisión se compara cuidadosamente y elimina su archivo .dat (después de cerrar la solución) si las cosas parecen ser incorrectas.

  2. Si tiene más de 20 bases de datos y se referencian unas a otras y usan referencias circulares ... Les va a doler. No he descubierto cómo hacer que se adapte a ese escenario. GDR 2 parece ofrecer alguna promesa.

Cuestiones relacionadas