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

Los desarrolladores de la base de datos realizan tareas de desarrollo individuales, cada desarrollador trabajando en un entorno de desarrollo aislado independiente (a menudo conocido como espacio aislado). El proceso para implementar una versión probada de un proyecto de base de datos en un entorno de ensayo o de producción es similar pero con algunas diferencias clave.

En general, el acceso a los servidores de ensayo y de producción están restringidos. Los servidores pueden contener otras bases de datos que debe conservar. A menudo, la base de datos de destino ya existe y puede contener datos que también se deben conservar. Es menos probable que desee modificar la configuración de servidor al implementar una base de datos que al implementar en un entorno de desarrollo. En algunos casos, incluso aunque tenga permiso para implementar una base de datos, es posible que no tenga permiso para actualizar la configuración de servidor.

Configurar el proyecto de base de datos para la implementación en un entorno de ensayo o de producción

En las propiedades de implementación para el proyecto de base de datos, puede configurar sus valores de modo que coincidan con los entornos de servidor de ensayo y producción. Esta configuración es independiente de los valores de los demás desarrolladores de software para sus entornos de desarrollo aislado. Manteniendo esta separación, puede establecer configuraciones de proyecto para los entornos de ensayo y producción que otros desarrolladores no pueden modificar. Cada configuración tiene una conexión de bases de datos de destino a un servidor de ensayo o de producción, su propio archivo .sqldeployment y su propio archivo .sqlcmdvars.

También puede configurar valores de ensayo y producción para preparar el script de implementación pero omitir la implementación real. Adoptando esta estrategia, puede revisar el script de distribución, hacer cambios si es necesario y, a continuación, implementar manualmente el entorno de destino.

Detalles de configuración de implementación

Antes de implementar el proyecto en un entorno de ensayo o de producción, debe considerar los problemas siguientes:

  • Probablemente desee utilizar la intercalación de la base de datos de destino porque el entorno de ensayo o de producción esté ya preparado.

  • No deseará crear de nuevo la base de datos siempre porque perdería datos.

  • Quizá desee implementar propiedades de base de datos si está implementando una nueva base de datos. Si está implementando actualizaciones en una base de datos existente, probablemente no desee implementar propiedades de base de datos porque ya deberían estar configuradas correctamente.

  • Probablemente desee hacer una copia de seguridad de la base de datos como parte del proceso de implementación, a menos que ya haya hecho un copia de seguridad de los objetos y datos como un paso independiente del proceso de implementación.

  • Deseará bloquear la implementación si puede producirse una pérdida de datos, porque esté actualizando una base de datos que, con frecuencia, contendrá datos de producción.

  • Quizá desee generar instrucciones DROP para objetos que estén en la base de datos pero no en el proyecto de base de datos. El proyecto de base de datos debe representar la versión correcta de los esquemas de ensayo y producción. Una excepción podría ser si debe mover los datos manualmente después de implementar actualizaciones en la base de datos. En este caso, no deseará quitar los objetos hasta después de migrar los datos.

Variables de comando SQL

Al implementar en un entorno de ensayo o producción, las variables deben tener valores adecuados para ese entorno. Por ejemplo, quizá necesite valores para los service broker o certificados de servicio en el entorno de ensayo o de producción diferentes de los valores que se encuentran en el entorno de desarrollo. Si especifica un archivo .sqlcmdvars diferente para cada entorno de destino, 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

Un proyecto de base de datos puede contener definiciones para objetos de base de datos, para objetos de servidor o para ambos. En la mayoría de los entornos, los desarrolladores pueden cambiar los objetos de base de datos, pero solo el administrador de bases de datos puede cambiar los objetos de servidor. Puede exigir esta restricción colocando los objetos de servidor en un proyecto independiente (conocido como un proyecto de servidor). A continuación, puede restringir el control de versiones para que solo sus administradores puedan cambiar el proyecto de servidor. En un entorno de ensayo o de producción, la mayoría de las veces el proyecto de servidor y sus objetos se implementarán independientemente del proyecto que contiene los objetos de base de datos.

Para implementar un proyecto de servidor, utilice los mismos procedimientos que utiliza para implementar un proyecto de esquema.

Implementar roles

Los roles que utilice en la base de datos deben implementarse en todos los servidores en los que implemente esa base de datos. Cuando implemente una base de datos en un servidor de ensayo o de producción, debe definir todos los usuarios necesarios y asociar esos usuarios con sus roles adecuados.

Implementación de línea de comandos

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

  • Microsoft .NET Framework versión 3.5 Service Pack 1

  • SQL Server Objetos de administración (SMO)

    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 Premium

    Puede encontrarlo 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.

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 conocer mejor el proceso de compilación e implementación. Además, puede obtener información sobre todas las propiedades y configuraciones que puede utilizar para controlar cómo se compilar y se implementa el proyecto.

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 de base de datos para el proceso de compilación: puede configurar valores que controlan cómo se compila el proyecto de base de datos. Por ejemplo, puede especificar la ruta de acceso de salida:

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

  • Puede configurar la implementación de cualquier configuración de compilación asociándola 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.

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

  • Puede controlar si las propiedades de la base de datos se actualizan al implementar la base de datos y qué valores deben tener estas 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 en un símbolo del sistema con MSBuild para prepararlo para la implementación.

Implementar el proyecto de base de datos: puede implementar el proyecto de base de datos en Visual Studio, utilizando MSBuild como parte de la ejecución de pruebas unitarias de base de datos o utilizando VSDBCMD en una línea de comandos para actualizar la base de datos o el servidor de destino.

Además, también puede implementar utilizando Team Foundation Build si define un flujo de trabajo personalizado.

Solucionar problemas: puede obtener más información sobre cómo solucionar los problemas más comunes relacionados con la compilación y la implementación de un proyecto de base de datos.

Escenarios relacionados

Vea también

Conceptos

Escribir y cambiar código de base de datos

Crear y modificar objetos de servidor y base de datos