Control de versiones sobre bases de datos SQL Server 2000/2005

0
370

Introducción
En los sistemas integrados diseñados para ser instalados sobre arquitecturas tecnológicas cliente/servidor, se evidencia la estructuración de las tres capas básicas de desarrollo: presentación, reglas del negocio y bases de datos.

Habitualmente al construir aplicaciones de este u otro tipo, se utiliza una herramienta de control de versiones que permita administrar las distintas versiones de cada componente desarrollado. Este sistema es implementado para la capa de presentación y de reglas del negocio, ya que estás implican la generación de código fuente, él cual es afectado por nuevas funcionalidades o por especializaciones realizadas a los usuarios.

Algunos jefes de proyectos comenten el error de dejar por fuera del control de versiones a la capa de base de datos, perdiéndose las modificaciones realizadas a las bases de datos, tablas, procedimientos almacenados, funciones o demás objetos que componen esta capa.

El control de versiones para una base de datos SQL Server podía ser implementado a través de Microsoft InterDev, pero este proceso era bastante complejo de administrar, ahora con la plataforma .Net se puede instalar esta funcionalidad sin mayores inconvenientes.

Que es un sistema de control de versión?
También conocido como CVS (control version control), es un sistema que permite administrar las versiones de los ítems incluidos en su catalogo. Comúnmente son utilizados para gestionar las versiones del código fuente, pero también pueden ser utilizados con bases de datos, documentos, imágenes y otros archivos.

Un sistema de control de versión debe incluir:

  • Un repositorio de los ítems.
  • Histórico de las acciones realizadas a cada ítem, que incluya la información básica de las acciones.
  • Administración de usuarios del sistema de control.
  • Gestión de los ítems(insertar, actualizar, eliminar o mover).
  • En el mercado se puede encontrar una gran variedad de herramientas que permiten implementar este sistema de control (Clear case, CVS, Source safe, Subversión, ….).

    En este caso vamos a utilizar la herramienta Microsoft Visual Source Safe 6.0. (cualquiera de sus actualizaciones sirve, pero es recomendable utilizar las versiones 6c, 6d o posterior).

    Este sistema incluye todas las características antes señaladas, añadiendo las siguientes funciones:

    Get latest versión: obtiene la ultima versión del ítem.
    Check out: obtiene la ultima versión y captura de manera exclusiva un ítem para ser modificado por el usuario.
    Check in: libera un ítem que fue capturado (Check out) con anterioridad y almacena los cambios en el archivo histórico.
    Undo check out: libera un item que fue capturado, pero no almacena ningun cambio.

    Preparando la estructura de practica
    Para implementar este sistema de control de versiones para bases de datos SQL Server se requiere instalar:

  • SQL Server 2000 / 2005 instalado en el servidor.
  • Microsoft .Net instalado en el cliente.
    – Opción Visual Studio Enterprise Templates.
    – Opción VS 6 Stored Procedure Version Control
  • Visual Source Safe Server instalado en el servidor.
  • Visual Source Safe Client instalado en el cliente.
  • Además restaurar la base de datos incluida con este material o instalar una base de datos de pruebas.

    Configurar el control de versiones
    1. Inicie Microsoft Visual Studio .NET.

    Cree un nuevo proyecto Seleccionando Other Projects, Databases Projects en tipos de proyecto y seleccione Proyecto de bases de datos en Plantillas.

    Seleccione el nombre y la ubicación apropiada para el proyecto.

    2. Configure la conexión al servidor y base de datos que desea incluir en el sistemas de control de versiones Source Safe.

    Seleccione apropiadamente el nombre del servidor, la información de la autenticación, la base de datos y verifique la conexión antes de cerrar esta pantalla.

    Esta operación permite que Visual Studio incluya la conexión a esta base de datos como referencia del proyecto. Visual Studio puede contener varias conexiones de datos y cualquiera de estas puede ser adicionada al proyecto como referencia.

    Las conexiones de datos se observan a través del Server Explorer, y cada conexión incluye los objetos que pueden ser referenciados por medio de esta interface (Diagramas, Tablas, Vistas, Procedimientos y Funciones).

    3. El nuevo proyecto se visualiza con la ventana Solution Explorer, incluyendo La solución .NET, el proyecto de base de datos, las referencias a bases de datos y carpetas disponibles para iniciar la creación de scripts. Estas carpetas pueden ser eliminadas, según la conveniencia del usuario.

    Para nuestro proyecto incluir una nueva carpeta la cual podemos llamar “Procedimientos”, en la cual vamos a incluir los procedimientos almacenados de la base de datos referenciada.

    4. Agregar los procedimientos almacenados al proyecto.

    En el Server Explorer, seleccionar la base de datos de referencia y seleccionar todos los procedimientos almacenados.

    Luego arrastrarlos hasta la carpeta Procedimientos, ubicada en la ventana Solution Explorer, dentro del proyecto de base de datos. Esta operación solicita a Visual Studio que genere los scripts de estos procedimientos con el fin de administrar las versiones por medio de estos archivos.

    Este procedimiento dispara una pantalla que solicita la configuración de los scripts. Para lo cual se debe seleccionar solo la opción de “Generar el CREATE de cada objeto”. Como se muestra a continuación.

    Al aceptar esta pantalla, se debe seleccionar la nueva ubicación física de estos archivos(scripts), la cual debe ser la misma ubicación de la carpeta Procedimientos.

    5. En este punto se tiene el proyecto completamente configurado con los objetos a adicionar al control de versiones.

    Para incluir el proyecto a Source Safe, dar clic derecho sobre el proyecto de base de datos y seleccionar el comando de adicionar la solución a Source Control.

    Esto ejecuta una pantalla que solicita los datos del servidor de Source Safe (base de datos y seguridad), el cual debe estar instalado con anterioridad. Para luego solicitar el nombre del proyecto de Source Safe que almacenara a la solución de base de datos.

    Al aceptar estas pantallas el proyecto es incluido en la base de datos de Source Safe, junto a su solución y a todos sus elementos internos, cambiando la apariencia de los archivos en el Solution Explorer.

    6. Cuando se pretenda realizar algún cambio en los procedimientos almacenados de la base de datos, se debe utilizar el menú alterno que se visualiza al dar clic derecho sobre un archivo y seleccionando la opción apropiada al caso (Check In, Check out, …)

    Al realizar cambios sobre los procedimientos almacenados, los cambios están reflejados sobre el archivo físico, pero no sobre la base de datos; por lo tanto se debe ejecutar todos los cambios sobre la base de datos de referencia, seleccionando en el menú alterno la instrucción Run.

    7. Para adicionar un nuevo objeto al proyecto de Source Safe, se puede utilizar el sistema de arrastre utilizado anteriormente o se puede adicionar un nuevo ítem.

    Conclusión
    Microsoft .NET Framework proporciona un entorno altamente versátil, facilitando la integración con distintos sistemas y la administración de aplicaciones empresariales. Esta integración permite que se pueda unir sencillamente sistemas de bases de datos con sistemas de control de versiones, mejorando el desempeño con relación a las versiones anteriores de control de versiones.

    Aunque nos encontramos con un procedimiento sencillo de instalar y administrar, requiere que tanto el administrador del sistema Visual Source Safe, como los usuarios estén concientes del impacto generado por las acciones realizadas sobre la base de datos y sobre el control de versiones.

    _____________________

    Acerca del Autor
    Hermilson Tinoco Gaviria es Ingeniero de Sistemas graduado en la Universidad Santiago de Cali, y se desempeña como Analista de Sistemas desde hace mas de 7 años con ambientes Microsoft (VB6, .Net y SQL Server); además es instructor en la Universidad Santiago de Cali y en varios CTECs de la ciudad de Cali, Colombia. Actualmente trabaja en un sistema ERP con Sistemas de Información Empresarial, el cual se viene desarrollando desde hace más de 4 años. Desde el año 2001 es MCP, obteniendo desde entonces las certificaciones MCSD (VB6), MCAD, MCSD .NET, MCT y MCDBA; permitiéndole especializarse como consultor de aplicaciones corporativas e implementaciones de bases de datos empresariales (SQL Server y Oracle).

    Dejar respuesta

    Please enter your comment!
    Please enter your name here