Compartir a través de


Tutorial: Desarrollo iterativo de bases de datos en un entorno aislado

Actualización: noviembre 2007

En Tutorial: Crear un entorno de desarrollo aislado de bases de datos, representó el papel de un administrador de bases de datos que creó un proyecto de base de datos e importó las definiciones de esquema y objeto de base de datos desde un servidor de producción. En el segundo tutorial, creó pruebas unitarias de base de datos para comprobar la funcionalidad existente y establecer una línea de base limpia. En este tutorial, el tercero y último de la serie, realizará una tarea típica de desarrollo iterativo: cambiará el nombre de dos columnas de la base de datos Realizará estos cambios en un entorno de desarrollo aislado para evitar en todo lo posible que el resto del equipo se vea afectado hasta que esté listo para compartir sus cambios.

Entre las tareas ilustradas en este tutorial se incluyen las siguientes:

  • Cómo utilizar la refactorización de bases de datos para cambiar el nombre de las columnas, proceso que reduce el tiempo necesario para actualizar todas las referencias a las columnas, así como la posibilidad de que se produzcan errores.

  • Ejecutar pruebas unitarias de base de datos para comprobar que la funcionalidad existente no se ha visto afectada por los cambios.

  • Proteger los cambios en el sistema de control de versiones para que estén disponibles para el resto del equipo.

Requisitos previos

Debe haber instalado Visual Studio Team System Database y tener acceso a la base de datos de ejemplo AdventureWorks de Microsoft SQL Server 2005. Además, en este tutorial se da por supuesto que ha realizado los procedimientos descritos en Tutorial: Crear un entorno de desarrollo aislado de bases de datos y en Tutorial: Establecer una línea de base para el entorno de desarrollo aislado.

Cambiar el nombre de las columnas de la base de datos

Una tarea típica de desarrollo es cambiar el nombre de los objetos de la base de datos. En este tutorial, cambiará el nombre de la columna EmployeeID de la tabla [HumanResources].[Employee] para que se denomine EmployeeNumber. En varias claves externas y procedimientos almacenados se hace referencia a la columna EmployeeID. Para realizar el cambio manualmente, tendría que modificar varios archivos. Antes de realizar modificaciones, debería comprobar que tiene la versión más reciente del proyecto de base de datos.

Para obtener la última versión del proyecto de base de datos

  1. En Team Explorer, expanda el nodo Proyecto de equipo que contiene el proyecto de base de datos.

  2. Abra el Explorador de control de código fuente haciendo doble clic en el nodo Control de código fuente.

  3. En el Explorador de control de código fuente, haga clic con el botón secundario en su proyecto de base de datos y haga clic en Obtener la última versión.

    Recuperará en su equipo la versión más reciente de la solución que contiene el proyecto de base de datos.

Para cambiar el nombre de EmployeeID a EmployeeNumber

  1. Si la solución AdvWorksSandbox está abierta en el Explorador de soluciones, vaya al paso 4.

  2. En el menú Archivo, elija Abrir y, a continuación, haga clic en Proyecto o solución.

    Aparecerá el cuadro de diálogo Abrir proyecto.

  3. Haga clic en la solución AdvWorksSandbox y, después, en Abrir. (De forma predeterminada, esta solución se encuentra en Mis Documentos\Visual Studio 2005\Projects\AdvWorksSandbox.)

    La solución AdvWorksSandbox se abre en el Explorador de soluciones.

  4. Abra el menú Ver y haga clic en Vista de esquema.

  5. En Vista de esquema, expanda el nodo AdvWorksSandbox y, a continuación, expanda la carpeta Tablas.

  6. En la carpeta Tablas, expanda la tabla HumanResources.Employee y, a continuación, expanda la carpeta Columnas.

  7. Haga clic con el botón secundario en la carpeta EmployeeID, elija Refactorizar y haga clic en Cambiar nombre.

    Aparecerá el cuadro de diálogo Cambiar nombre con el nombre de columna existente.

  8. En Nuevo nombre, escriba EmployeeNumber.

  9. Si no está activada la casilla Vista previa de los cambios, actívela y haga clic en Aceptar.

    Aparecerá el cuadro de diálogo Obtener vista previa de cambios - Cambiar nombre con todos los elementos del proyecto que hacen referencia a la columna cuyo nombre va a cambiar.

  10. Haga clic en uno de los cambios.

    Los detalles del cambio aparecen en Vista previa de los cambios.

  11. Después de revisar los cambios, haga clic en Aplicar para aplicarlos.

    Los archivos que se modifican se desprotegen en el sistema de control de versiones.

Puede ver los cambios pendientes en la ventana Cambios pendientes. En la ventana Cambios pendientes deberían aparecer los archivos siguientes:

  • AWGenPlan.dgen

  • Employee.table.sql

  • Employee.PK_Employee_EmployeeID.sql

  • vSalesPerson.view.sql

  • uspGetManagerEmployees.proc.sql

  • vEmployee.view.sql

  • vEmployeeDepartmentHistory.view.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • PurchaseOrderHeader.FK_PurchaseOrderHeader_Employee_EmployeeID.fkey.sql

  • Employee.FK_Employee_Employee_ManagerID.fkey.sql

  • EmployeePayHistory.FK_EmployeePayHistory_Employee_EmployeeID.fkey.sql

  • EmployeeDepartmentHistory.FK_EmploymentDepartmentHistory_Employee_EmployeeID.fkey.sql

  • JobCandidate.FK_JobCandidate_Employee_EmployeeID.fkey.sql

  • EmployeeAddress.FK_EmployeeAddress_Employee_EmployeeID.fkey.sql

  • SalesPerson.FK_SalesPerson_Employee_EmployeeID.fkey.sql

  • Employee.uEmployee.trigger.sql

Ejecutar pruebas unitarias de base de datos

Después de realizar cambios y antes de protegerlos en el sistema de control de versiones, debería ejecutar las pruebas unitarias de base de datos para comprobar que la aplicación sigue funcionando correctamente antes de compartir esos cambios con el equipo.

Para ejecutar pruebas unitarias de base de datos para identificar posibles problemas

  1. En el menú Prueba, seleccione Ventanas y, a continuación, haga clic en Vista de pruebas.

    La ventana Vista de pruebas muestra varias pruebas. De forma predeterminada, se crean las pruebas denominadas ManualTest1 y TestMethod1. Las pruebas denominadas dbo_uspGetManagerEmployeesTest y dbo_ufpLeadingZeroTest son las que creó en el tutorial anterior.

  2. Active las casillas correspondientes a dbo_uspGetManagerEmployeesTest y dbo_ufpLeadingZeroTest, haga clic con el botón secundario en una de ellas y haga clic en Ejecutar selección.

  3. Vea los resultados en la ventana Resultados de pruebas.

    El proyecto de base de datos se implementa en su entorno de desarrollo aislado, se generan los datos de prueba y las pruebas se ejecutan correctamente.

Comparar el proyecto de base de datos con la base de datos de producción

Puede comparar los esquemas del proyecto de base de datos actualizado y de la base de datos de producción para determinar en qué se diferencian. Dado que está comparando y no actualizando los esquemas, puede especificar cualquiera de los dos como origen o destino para la comparación.

Para comparar el esquema del proyecto de base de datos con el de la base de datos de producción

  1. En el menú Datos, elija Comparación de esquemas y haga clic en Nueva comparación de esquemas.

    Se abrirá el cuadro de diálogo Nueva comparación de esquemas.

  2. Acepte los valores predeterminados de Esquema de origen.

    Aparece especificado el proyecto de base de datos AdvWorksSandbox.

  3. En Esquema de destino, en la lista Database, haga clic en la conexión con la base de datos AdventureWorks desde la que importó inicialmente el esquema de base de datos y haga clic en Aceptar.

    Se comparan los esquemas. Las únicas diferencias deberían ser los cambios que realizó en este tutorial.

  4. Examine las diferencias entre los esquemas. Cuando termine, cierre la ventana Comparación de esquemas.

    Ahora ya puede compartir sus cambios con el equipo.

Proteger los cambios

Después de haber comprobado que todos los cambios están listos para ser compartidos con otros miembros del equipo, protéjalos en el sistema de control de versiones. Debe proteger cualquier cambio realizado en la solución, que normalmente afecta al proyecto de base de datos, a su proyecto de prueba unitaria, y a cualquier código de aplicación y pruebas unitarias de aplicación asociados.

Para proteger los cambios y hacer que estén disponibles para el equipo

  1. En el menú Ver, elija Otras ventanas y, a continuación, haga clic en Cambios pendientes.

    Aparecerá la ventana Cambios pendientes.

  2. En Comentario, escriba Cambio de nombre de la columna EmployeeID.

  3. En la ventana Cambios pendientes, haga clic en Proteger en la barra de herramientas.

    Cuando el proyecto de base de datos y los archivos que contiene se protegen en el sistema de control de versiones, aparece el cuadro de diálogo Comprobación en curso. Los iconos del Explorador de soluciones se actualizan para indicar que los archivos se han protegido en el sistema de control de versiones.

Pasos siguientes

Este proceso iterativo se repetirá muchas veces con cada versión de la base de datos que su equipo implemente en el entorno de producción. Cada desarrollador realiza sus cambios en un entorno aislado, los prueba para asegurarse de que son correctos y, después, los comparte con el equipo al proteger las actualizaciones en el sistema de control de versiones. El proceso para implementar la base de datos en un entorno de producción es sencillo:

  1. Se etiqueta una versión de los archivos que componen el proyecto de base de datos y sus pruebas para indicar que forman parte de una versión que se va a implementar.

  2. Obtiene los orígenes con etiqueta y genera un script de generación.

  3. Revisa y modifica el script de generación según sea necesario, y realiza una implementación de prueba en un servidor de ensayo. Después de cada implementación, puede comparar el proyecto de base de datos con el esquema en el servidor de ensayo.

  4. Después de procesar una iteración en el script de generación hasta estar seguro de que está listo para producción, implementa el script de generación modificado en el entorno de producción.

  5. Si debe realizar cambios no reflejados en el proyecto de base de datos, puede importar a éste las actualizaciones desde el servidor de producción actualizado.

Para obtener más información acerca de Database Edition, puede realizar los tutoriales específicos de cada característica.

Vea también

Conceptos

Introducción a la terminología de Database Edition

Otros recursos

Refactorizar bases de datos

Ejecutar pruebas unitarias de base de datos

Comparar esquemas de base de datos