post icon

Como llevar un control de versiones del código DDL en SQL Server

Ya conociamos y veniamos hablando del SubVersion para algunos IDE’s de desarrollo e instalación de los servidores sobre Windows y Linux.

Es también sabidos que subversionar nuestros proyectos en el lenguaje que estén hechos es muy sencillo, y nos aporta muchas ventajas. Pero que sucede a la hora de versionar la Base de Datos?

Aquí casi siempre tendremos problemas, especialmente si trabajan como estoy acostumbrado. Todo el desarrollo posible sobre la BD en vez de la App. Esto nos lleva a mayor tiempo y trabajo invertido sobre la base de datos no subversionada que la aplicación que sí lo está (un poco paradójico en cierto modo).

Oracle tiene su propia herramienta de versionado de código (que podremos verlo más adelante, más vale que lo tenga con lo que cuesta también este motor). Pero los otros motores? Especificamente con SQL Server podemos versionar el código con Team Foundation Server si configuramos bien las cosas.

Otra alternativa que he encontrado hace muy poco y me ha gustado más que todas las existentes (al menos que conozco) es el producto de Red Gate, la misma es de paga, pero me parece un precio justo por la herramienta que es y no representa casi nada con lo que podemos salvar utilizando. Aunque si hubiera sido bueno tener una gamma más amplia de productos para subversionar bases de datos con opciones libres y abiertas (si encuentro alguna no duden que lo postearé, o si conocen alguna haganmelo saber que lo comento).

Llegue a conocer a una persona que hacía una extracción de la DDL de la BD con una app suya y lo subversionaba manualmente pero llevaría mucho trabajo implementarlo a gran escala y con muchas prestaciones (si tienen el tiempo suficiente sería excelente).

Esta herramienta tiene la capacidad de subversionar sobre un servidor SVN o Team Foundation Server, queda a nuestra elección cual usar.

Lo que más me gusto de ésta herramienta es que funciona como el código de aplicación subversionada, cada desarrollador puede descargar los cambios de sus compañeros en su copia local.

Veamos un ejemplo, crearé una DB llamada devtroce con una sola tabla en un servidor y luego lo obtendré desde otro una copia.

Luego creo una nueva carpeta dentro de alguno de los troncos del SVN, en mi caso lo llamo devtroce y lo confirmo al repositorio (para comenzar a subversionar la DB, debe ser una carpeta nueva y vacia)

Ahora damos clic sobre el enlace que está en la caja cuadrada y verde dentro de la primer imagen: “Create new link to source control..”

Una vez agregado vamos a commitear los cambios que tenemos de este modo:

Si actualizamos el repositorio de ficheros con el tortoise podriamos ver algo así:

Ahora en mi maquina local creo una nueva base de datos con el mismo nombre, la selecciono y en la pantalla de setup del Control Source veremos un link llamado: “”Link to a database already in source control”, lo que hará es recuperar del servidor lo que acabamos de subir y creará la tabla llamada tabla con sus 3 columnas.

Ahora obtenemos la ultima version desde el servidor:

Finalmente verán como quedan ambas BD:

Comentarios desde Facebook:

  1. avatar
    darkainsoul MEXICO Google Chrome Windows
    14 septiembre 2010 at 17:20 #

    Muy buen articulo, ando buscando algo así pero como mencionas libre o abierto. en fin si encuentro algo te informo

Responder