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 :
|
|
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
Démarrage du développement en équipe de bases de données
Explique comment créer une représentation hors connexion d'un schéma de base de données dans un projet de base de données et comment l'ajouter au contrôle de version.Démarrage du développement en équipe de bases de données faisant référence à d'autres bases de données
Explique comment créer une représentation hors connexion d'un schéma de base de données, définir des références à d'autres bases de données, spécifier les valeurs des variables dans les environnements de déploiement cibles et ajouter le projet au contrôle de version.Démarrage du développement en équipe de bases de données faisant référence à des objets SQLCLR
Explique comment créer une représentation hors connexion d'un schéma de base de données, définir des références aux assemblys qui contiennent des objets de common language runtime (CLR) SQL, définir des objets de base de données qui référencent ces objets SQLCLR et ajouter le projet au contrôle de version.Démarrage du développement en équipe de bases de données qui utilisent des collections de schémas XML
Explique comment créer une représentation hors connexion d'un schéma de base de données, définir des références à un fichier de définition de schéma XML (XSD), définir une collection de schémas XML utilisant ce fichier, définir les colonnes qui utilisent la collection de schémas XML et ajouter le projet au contrôle de version.Démarrage du développement en équipe de bases de données faisant référence à des objets serveur partagés
Explique comment créer une représentation hors connexion d'un schéma de base de données, définir des références à un projet serveur partagé, ajouter des références aux objets définis dans le projet serveur et ajouter le projet de base de données au contrôle de version.Générer et déployer des bases de données dans un environnement de développement isolé
Explique comment générer et déployer votre base de données dans votre environnement de développement isolé. Vous pouvez tester vos modifications de manière isolée avant de les archiver dans le contrôle de version pour les partager avec votre équipe. Vous devez tester vos modifications de manière isolée avant de les générer et de les déployer dans un environnement intermédiaire ou de production.
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