Partager via


Générer et déployer des bases de données dans un environnement de pré-production ou de production

Les développeurs de base de données effectuent des tâches de développement individuelles, chaque développeur travaillant dans un environnement de développement isolé distinct (souvent appelé bac à sable (sandbox)). Le processus de déploiement d'une version testée d'un projet de base de données dans un environnement intermédiaire ou de production est similaire, mais comporte quelques différences notables.

En règle générale, l'accès aux serveurs intermédiaire ou de production est restreint. Les serveurs peuvent contenir d'autres bases de données auxquelles vous ne devez pas toucher. Souvent, la base de données cible existe déjà, et peut même contenir des données qui doivent également être conservées. Vous êtes moins susceptible d'avoir à modifier les paramètres du serveur lorsque vous déployez une base de données que lorsque vous déployez dans un environnement de développement. Dans certains cas, même si vous avez l'autorisation de déployer une base de données, vous pouvez ne pas avoir l'autorisation requise pour mettre à jour les paramètres du serveur.

Configuration de votre projet de base de données pour un déploiement dans un environnement intermédiaire ou de production

Dans les propriétés de déploiement de votre projet de base de données, vous pouvez configurer ses paramètres afin qu'ils correspondent à l'environnement des serveurs intermédiaire et de production. Ces paramètres sont distincts des paramètres définis par les autres développeurs pour leurs environnements de développement isolés. Grâce à cette séparation, vous pouvez définir des configurations de projet pour vos environnements intermédiaire et de production que les autres développeurs ne peuvent pas modifier. Chaque configuration dispose d'une connexion de base de données cible à un serveur intermédiaire ou de production, de son propre fichier .sqldeployment et de son propre fichier .sqlcmdvars.

Vous pouvez également configurer vos paramètres intermédiaires ou de production pour préparer le script de déploiement sans pour autant procéder au déploiement réel. En optant pour cette stratégie, vous pouvez passer en revue le script de déploiement, lui apporter des modifications si nécessaire, puis le déployer manuellement dans l'environnement cible.

Détails de la configuration du déploiement

Avant de déployer votre projet dans un environnement intermédiaire ou de production, vous devez tenir compte des aspects suivants :

  • Vous utiliserez probablement le classement de la base de données cible du fait que l'environnement intermédiaire ou de production est déjà configuré.

  • Vous pourrez ne pas recréer la base de données à chaque fois pour ne pas perdre de données.

  • Vous pourrez déployer les propriétés de la base de données si vous déployez une nouvelle base de données. Toutefois, si vous déployez des mises à jour dans une base de données existante, vous n'avez pas intérêt à déployer les propriétés de la base de données parce que celles-ci doivent déjà être correctement configurées.

  • Vous devrez probablement sauvegarder la base de données dans le cadre du processus de déploiement, à moins que vous n'ayez déjà sauvegardé les objets et les données lors d'une étape distincte du processus de déploiement.

  • Vous pourrez bloquer le déploiement en cas de perte de données dans le cadre de la mise à jour d'une base de données qui contient souvent des données de production.

  • Vous pourrez générer des instructions DROP pour les objets qui se trouvent dans la base de données mais pas dans le projet de base de données. Votre projet de base de données devra représenter la version correcte des schémas intermédiaires et de production. Une exception peut être faite si vous devez déplacer des données manuellement après avoir déployé des mises à jour dans la base de données. Dans ce cas, il n'est pas nécessaire de déplacer les objets tant que vous n'avez pas migré les données.

Variables de commande SQL

Lorsque vous déployez dans un environnement intermédiaire ou de production, les variables doivent avoir des valeurs appropriées pour cet environnement. Par exemple, vous pouvez avoir besoin de valeurs pour les Service Brokers ou les certificats de service dans votre environnement intermédiaire ou de production qui diffèrent des valeurs figurant dans votre environnement de développement. En spécifiant un fichier .sqlcmdvars différent pour chaque environnement cible, vous pouvez éviter d'avoir à modifier les valeurs de ces variables lorsque vous modifiez les cibles de déploiement. Ceci évite également d'avoir à définir votre fichier .sqlcmdvars en termes de variables MSBuild pour obtenir des valeurs spécifiques à la configuration. Vous pouvez utiliser un fichier .sqlcmdvars différent pour chaque configuration à déployer.

Déploiement de projets serveur

Un projet de base de données peut contenir des définitions pour les objets de base de données, pour les objets serveur, ou pour les deux. Dans la plupart des environnements, les développeurs peuvent modifier les objets de base de données, mais seul l'administrateur de base de données peut modifier les objets serveur. Vous pouvez appliquer cette restriction en plaçant les objets serveur dans un projet distinct (appelé projet serveur). Vous pouvez alors restreindre le contrôle de version afin que seuls vos administrateurs puissent modifier le projet serveur. Dans un environnement intermédiaire ou de production, le projet serveur et ses objets sont le plus souvent déployés séparément du projet qui contient les objets de base de données.

Vous déployez un projet serveur à l'aide des mêmes procédures que celles utilisées pour déployer un projet de schéma.

Déploiement de rôles

Les rôles que vous utilisez dans votre base de données doivent être déployés sur tous les serveurs sur lesquels vous déployez cette base de données. Lorsque vous déployez une base de données sur un serveur intermédiaire ou de production, vous devez définir tous les utilisateurs requis et leur attribuer les rôles appropriés.

Déploiement à partir de la ligne de commande

Vous pouvez déployer un projet de base de données à partir d'une invite de commandes sur un ordinateur sur lequel Visual Studio Premium n'est pas installé, à condition que les éléments suivants aient été installés au préalable :

  • Microsoft .NET Framework version 3.5 Service Pack 1

  • Objets de gestion SQL Server (SMO)

    Ces objets doivent être installés sur tout ordinateur sur lequel SQL Server est installé.

En plus de respecter ces conditions préalables, vous devez transférer les fichiers suivants sur cet ordinateur, en les copiant éventuellement dans un premier temps sur un lecteur USB :

  • Sortie de génération de votre projet de base de données (version de débogage ou commerciale)

  • Contenu du dossier Deploy pour Visual Studio Premium

    Ce dossier se situe généralement sous [Program Files] \VSTSDB\Deploy.

  • Assemblys pour SQL Server Compact Edition

Après avoir installé les éléments requis et transféré les fichiers, vous pouvez déployer le projet de base de données (sous la forme du fichier .dbschema) dans une base de données cible.

Tâches courantes

Dans le tableau suivant, vous pouvez trouver les descriptions des tâches courantes qui prennent en charge ce scénario, ainsi que des liens pointant vers des informations supplémentaires sur la façon dont vous pouvez mener à bien ces tâches.

Tâche

Rubriques de prise en charge

Découvrir la génération et le déploiement : avant de configurer, générer et déployer votre premier projet de base de données, vous devrez éventuellement apprendre à utiliser les projets de base de données dans un environnement de travail en équipe. Vous pouvez également approfondir votre compréhension du processus de génération et de déploiement. De plus, vous pouvez découvrir l'ensemble des propriétés et paramètres disponibles pour contrôler la manière dont votre projet est généré et déployé.

Déployer des objets terminés uniquement : vous pouvez exclure les fichiers qui contiennent les définitions des objets de base de données que vous n'êtes pas prêt à déployer ou tester.

Configurer votre projet de base de données pour le processus de génération : vous pouvez configurer les paramètres qui contrôlent la manière dont votre projet de base de données est généré. Par exemple, vous pouvez spécifier le chemin de sortie.

Configurer votre projet de base de données pour le déploiement :

  • Vous pouvez configurer le déploiement de n'importe quelle configuration de build en l'associant à une base de données cible, un fichier qui contient les détails du déploiement et un fichier qui contient les variables qui affectent le déploiement.

  • Vous pouvez contrôler les détails du déploiement en modifiant le fichier qui contient ces détails.

  • Vous pouvez personnaliser des variables de manière à utiliser différents Service Brokers ou certificats de service dans chaque déploiement.

  • Vous pouvez contrôler si les propriétés de la base de données sont à jour lorsque vous déployez la base de données, ainsi que les valeurs que ces propriétés doivent avoir.

Remplir les tables de référence ou de recherche : vous pouvez ajouter des données de référence aux tables lorsque vous déployez votre projet de base de données. Vous pouvez choisir de procéder ainsi pour les tables qui contiennent des données qui changent rarement, telles que les informations d'expéditeur.

Générer votre projet de base de données : vous pouvez générer votre projet de base de données dans Visual Studio ou dans une invite de commandes avec MSBuild pour préparer le déploiement.

Déployer votre projet de base de données : vous pouvez déployer votre projet de base de données dans Visual Studio, en utilisant MSBuild dans le cadre d'une série de tests unitaires de base de données ou en utilisant VSDBCMD à partir d'une invite de commandes pour mettre à jour la base de données ou le serveur cible.

De plus, vous pouvez également procéder au déploiement à l'aide de Team Foundation Build si vous définissez un flux de travail personnalisé.

Résoudre les problèmes : vous pouvez en savoir plus sur la résolution des problèmes les plus fréquents concernant la génération et le déploiement d'un projet de base de données.

Scénarios associés

Voir aussi

Concepts

Écriture et modification du code d'une base de données

Création et modification des objets de base de données et serveur