Compilar e implementar bases de datos en un entorno de desarrollo aislado

En un entorno de desarrollo aislado (a menudo conocido como un espacio aislado), usted y sus compañeros de equipo pueden actualizar, compilar e implementar código de base de datos sin introducir cambios que entren en conflicto entre sí. Después de generar datos de pruebas y ejecutar pruebas unitarias de base de datos, puede implementar su versión del código en un servidor provisional o de pruebas, donde su versión se combinará con código de otros desarrolladores. Antes de implementar un proyecto de base de datos, configure sus propiedades basándose en si lo implementará en un entorno de desarrollo aislado en lugar de un servidor provisional o de producción.

Configurar el proyecto de base de datos para la implementación local

Cuando configure propiedades de implementación, puede identificar una conexión a bases de datos de destino, un archivo .deploymentconfig y un archivo .sqlcmdvars específicos del entorno de desarrollo aislado. En las propiedades de implementación del proyecto de base de datos puede configurar valores de implementación en el entorno de desarrollo aislado diferentes de los almacenados en el proyecto de base de datos. Por consiguiente, puede proporcionar una conexión de base de datos de destino a la base de datos de desarrollo aislada, un archivo .deploymentconfig diferente y un archivo .sqlcmdvars diferente.

Detalles de configuración de implementación

Antes de implementar el proyecto en un entorno de desarrollo aislado, debe resolver los problemas siguientes:

  • Probablemente desee utilizar la intercalación del proyecto de base de datos porque, en la mayoría de los casos, el entorno de desarrollo debe coincidir con los entornos provisionales o de producción de destino.

  • Quizá desee crear siempre de nuevo la base de datos porque no tenga datos de producción que deba conservar.

  • Desea implementar propiedades de la base de datos porque desea preparar el entorno de desarrollo de modo que coincida con el entorno de destino provisional o de producción.

  • No desea hacer una copia de seguridad de la base de datos porque esta práctica aumenta la sobrecarga para la implementación y no ofrece ninguna ventaja si crea de nuevo la base de datos cada vez que la implementa.

  • Quizá no desee bloquear la implementación si se produce una pérdida de datos, porque esté generando datos de prueba en lugar de trabajar con datos de producción. Si no espera que los cambios que está realizando provoquen pérdida de datos, quizá desear bloquear la implementación para probar esa expectativa.

  • No desea generar instrucciones DROP para objetos que están en la base de datos de destino pero no en el proyecto de base de datos. Es posible que haya excluido objetos del proyecto de base de datos que estén incompletos o que tenga prototipos de objetos en la base de datos de destino que desee conservar.

Variables de comando SQL

Cuando implemente en un entorno de desarrollo aislado, deseará que las variables tengan valores adecuados para ese entorno. Por ejemplo, quizá necesite valores para los service broker o certificados del servicio en el entorno de desarrollo que difieran de los valores del entorno provisional o de producción. Si especifica un archivo .sqlcmdvars diferente para el entorno de desarrollo aislado, puede evitar tener que cambiar los valores de esas variables al cambiar los destinos de implementación. Esta práctica también elimina el requisito de definir el archivo .sqlcmdvars en términos de variables MSBuild para tener valores específicos de la configuración. Puede tener un archivo .sqlcmdvars diferente para cada configuración que desee implementar.

Implementar proyectos de servidor

Cuando implemente un proyecto de base de datos, implementará los objetos y valores para la base de datos. Al implementar un proyecto de servidor, se implementan los objetos que se definen en la base de datos maestra, pero no se cambia la configuración de servidor. Se puede omitir la configuración del servidor o comprobar que los valores de algunas o todas las configuraciones del servidor de destino coinciden con los valores especificados en el proyecto de servidor.

Además de administrar la configuración de manera diferente, un proyecto de servidor se implementa utilizando los mismos procedimientos que se utilizan para implementar un proyecto de base de datos.

Implementar roles

Debe implementar los roles que utilice en la base de datos en todos los servidores en los que implemente la base de datos. Sin embargo, en el entorno de desarrollo puede limitar el número de usuarios que debe asociar a cada rol. Normalmente, deseará por lo menos un usuario para cada rol para la prueba, pero no tiene que implementar un conjunto completo de usuarios en el entorno de desarrollo aislado.

Implementación de línea de comandos

Puede implementar un proyecto de base de datos desde un símbolo del sistema en un equipo en el que no esté instalado Visual Studio si instala los requisitos previos siguientes:

  • Microsoft .NET Framework versión 4

  • Objetos de administración de SQL Server (SMO)

    Estos objetos se deben instalar en cualquier equipo en el que se instale SQL Server.

Además de estos requisitos previos, también debe transferir los archivos siguientes a ese equipo, quizás copiándolos primero en una unidad USB (Bus serie universal):

  • La salida de la compilación del proyecto de base de datos (depuración o comercial)

  • El contenido de la carpeta Deploy para Visual Studio

    Esta carpeta se encuentra normalmente en [Archivos de programa]\VSTSDB\Deploy.

  • Los ensamblados para SQL Server Compact Edition

Después de instalar los requisitos previos y transferir los archivos, puede implementar el proyecto de base de datos (en forma de archivo .dbschema) en una base de datos de destino.

Datos de referencia

Puede agregar instrucciones al script posterior a la implementación en el proyecto de base de datos para rellenar una o más tablas con datos de referencia. Para obtener más información, vea Agregar datos de referencia a las tablas al implementar la base de datos.

También puede comparar la base de datos implementada con una base de datos que contenga datos de referencia si desea sincronizar una o más tablas. Para obtener más información, vea Comparar y sincronizar los datos de una o más tablas con datos de una base de datos de referencia.

Tareas comunes

En la siguiente tabla, encontrará descripciones de tareas comunes que admiten este escenario y vínculos para obtener más información acerca de cómo puede completar correctamente dichas tareas.

Tarea

Temas adicionales

Primeros pasos con la compilación e implementación: antes de configurar, compilar e implementar su primer proyecto de base de datos, quizá desee entender cómo utilizar proyectos de base de datos en un entorno de equipo. También puede mejorar su comprensión del proceso de compilación e implementación, y obtener información sobre las propiedades y configuraciones que controlan cómo se compilar y se implementa el proyecto.

Aprender con la práctica: si completa los tutoriales preliminares, puede obtener información rápidamente sobre el proceso completo, desde la creación de un entorno de desarrollo aislado hasta el establecimiento de una línea base y la realización de desarrollo iterativo.

Implementar solo los objetos completados: puede excluir los archivos que contenga las definiciones de los objetos de base de datos que no estén listas para implementar o probar.

Configurar el proyecto para la compilación: puede configurar valores que controlan cómo se compila el proyecto de base de datos. Por ejemplo, puede especificar que las advertencias se deben tratar como errores.

Configurar el proyecto para la implementación:

  • Puede configurar la implementación de cualquier configuración de compilación mediante la asociación de una configuración con una base de datos de destino, un archivo que contiene detalles de implementación y un archivo que contiene variables que afectan a la implementación.

  • Puede controlar los detalles de la implementación modificando el archivo que contiene los detalles de implementación (.deploymentconfig).

  • Puede personalizar las variables para utilizar diferentes Service Broker o certificados de servicio en cada implementación.

  • Puede controlar si las propiedades del servidor y la base de datos se actualizan al implementar el proyecto y qué valores deben tener esas propiedades.

Rellenar referencias o tablas de consulta: puede agregar datos de referencia a las tablas al implementar el proyecto de base de datos. Quizá decida hacer esto para las tablas que contengan datos que cambien infrecuentemente, tales como la información del consignador.

Compilar el proyecto de base de datos: puede compilar el proyecto de base de datos en Visual Studio o desde un símbolo del sistema con MSBuild. Puede configurar el número máximo de errores o advertencias y suprimir las advertencias si desea omitirlas. Puede realizar acciones como parte de la compilación, inmediatamente antes o después de compilar el proyecto de base de datos.

Implementar el proyecto de base de datos: puede implementar el proyecto de base de datos en Visual Studio, utilizando MSBuild o utilizando la herramienta de la línea de comandos VSDBCMD para actualizar la base de datos o el servidor de destino. Antes de proteger los cambios para el proyecto de base de datos, quizá desee probar también si una compilación e implementación de equipo completa es correcta.

Solucionar problemas: puede obtener más información sobre cómo solucionar los problemas más comunes de compilación e implementación, tales como problemas al cambiar el nombre de proyectos y ensamblados de Common Language Runtime (CLR) de SQL.

Pasos siguientes

Antes de proteger los cambios, debe considerar la ejecución de pruebas unitarias de base de datos para comprobar si la base de datos funciona como se desea. Puede escribir pruebas adicionales para comprobar el código que haya escrito. Opcionalmente, puede implementar el proyecto y generar datos de pruebas al ejecutar las pruebas. Para obtener más información, vea Comprobar código de base de datos mediante pruebas unitarias.

Escenarios relacionados

Generar e implementar bases de datos en un entorno de ensayo o de producción

Iniciar el desarrollo en equipo de bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a otras bases de datos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de servidor compartidos

Iniciar el desarrollo en equipo de bases de datos que hacen referencia a objetos de SQLCLR

Vea también

Conceptos

Crear y modificar objetos de servidor y base de datos

Iniciar el desarrollo de bases de datos de equipo