Partager via


Comment : déployer des modifications vers des bases de données nouvelles ou existantes

Après avoir apporté des modifications au projet de base de données, vous devez déployer ces modifications vers le serveur de base de données. Lorsque vous déployez le projet de base de données, le schéma que vous avez défini dans le projet de base de données est comparé avec le schéma cible pour identifier l'ensemble des actions nécessaires pour la synchronisation des schémas. Ces actions sont combinées avec le script de prédéploiement et le script de post-déploiement pour former un script de déploiement complet. Si la base de données cible n'existe pas ou si vous avez choisi de toujours recréer la base de données, le schéma défini dans le fichier .dbschema est utilisé pour créer la base de données. Lorsque vous créez une base de données, le script de déploiement essaie de supprimer une base de données existante portant le même nom, le cas échéant. Si le projet de base de données, ses propriétés ou son contenu ont changé depuis la dernière génération ou le dernier déploiement, vous génèrerez un fichier .dbschema mis à jour lorsque vous créerez le projet.

Dans un environnement de production, vous ne déploieriez probablement pas directement dans la base de données cible. Vous généreriez plutôt le script de déploiement (fichier .SQL), l'examineriez et le mettriez éventuellement à jour, puis vous le déploieriez à l'aide de l'éditeur Transact-SQL. Vous pourriez également utiliser un outil tel que SQL Server Management Studio.

Vous pourriez aussi déployer votre base de données à l'aide de l'outil VSDBCMD.EXE. Vous pouvez spécifier le fichier .dbschema à utiliser pour déployer la base de données. Vous pouvez utiliser VSDBCMD pour effectuer le déploiement à partir d'un ordinateur sur lequel Visual Studio n'est pas installé. Pour plus d'informations, consultez Comment : préparer une base de données pour un déploiement à partir d'une invite de commandes à l'aide de VSDBCMD.EXE.

Important

Avant de déployer le projet de base de données, vous devez définir les propriétés du projet pour spécifier la connexion à la base de données cible et le nom de la base de données. Si vous avez généré le projet de base de données en utilisant l'Assistant Nouveau projet de base de données, vous avez peut-être déjà spécifié vos propriétés de projet. Vous pouvez modifier les propriétés du projet à tout moment. Pour plus d'informations, consultez Comment : configurer les propriétés de base de données pour les projets de base de données.

Autorisations requises

Vous devez avoir les autorisations nécessaires pour créer la base de données (pour les nouveaux déploiements) ainsi que pour créer, modifier et supprimer les objets de schéma dans cette base de données pour déployer le projet de base de données.

Déploiement dans une seule base de données

Vous pouvez déployer votre base de données à l'aide de Visual Studio, à partir d'une invite de commandes ou en exécutant le script de déploiement dans un éditeur Transact-SQL. Vous pouvez utiliser l'éditeur Transact-SQL fourni dans Visual Studio, ou vous pouvez utiliser un outil tel que SQL Server Management Studio.

Pour déployer le projet de base de données vers une base de données nouvelle ou existante

  1. Dans l'Explorateur de solutions, cliquez sur le projet de base de données à déployer.

    Si vous avez créé une configuration personnalisée, vous pouvez spécifier qu'elle doit être utilisée en cliquant sur son nom dans la liste Configurations de solutions dans la barre d'outils Standard. Par défaut, vous avez une seule configuration pour votre projet de base de données et elle est déjà sélectionnée.

  2. Dans le menu Générer, cliquez sur Déployer.

    La sortie de génération du projet de base de données est générée (si elle n'existe pas ou n'est pas à jour), puis déployée. La fenêtre Sortie affiche les résultats du déploiement, qui se présentent comme suit :

    NomProjet -> D:\Documents and Settings\NomUtilisateur\Mes documents\Visual Studio 2008\Projects\NomSolution\NomProjet\sql\NomProjet.dbschema

    ------ Déploiement démarré : Projet : NomProjet, Configuration : Déboguer les UC ------

    Script de déploiement NomProjet.sql généré

    Création de NomProjet

    Création de dbo.NomObjet

    .

    .

    .

    .

    ========== Génération : 1 a réussi ou est à jour, 0 a échoué, 0 a été ignoré ==========

    ========== Déploiement : 1 a réussi, 0 a échoué, 0 a été ignoré ==========

Pour déployer le projet de base de données vers une base de données nouvelle ou existante à partir de la ligne de commande

  1. Ouvrez la fenêtre Invite de commandes, puis naviguez jusqu'au répertoire de votre projet.

  2. À l'invite de commandes, tapez la ligne de commande exemple suivante pour déployer un projet de base de données (où ProjetBaseDeDonnées est le nom de votre projet) :

    MSBuild /t:Build;Deploy DatabaseProject.dbproj

    Notes

    MSBuild.exe doit se trouver dans le chemin d'accès spécifié par votre variable d'environnement PATH. De plus, vous devez spécifier NomBaseDeDonnéesCible et ChaîneConnexionCible dans le projet de base de données ou dans le cadre de la ligne de commande. Pour plus d'informations sur la syntaxe de ligne de commande pour la génération de scripts de compilation, consultez Vue d'ensemble de la génération et du déploiement d'une base de données.

    Des résultats semblables aux suivants s'affichent :

    Microsoft (R) Build Engine Version 3.5.21022.8

    [Microsoft .NET Framework, Version 2.0.50727.1433]

    Copyright (C) Microsoft Corporation 2007. All rights reserved.

    Build started 5/20/2008 1:36:58 PM.

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" on node 0 (Deploy target(s)).

    Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (1) is building "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (2) on node 0 (DspDeploy target(s)).

    Deployment script ProjectName.sql generated

    :

    (1 row(s) affected)

    Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\sql\ProjectName.deploymanifest" (DspDeploy

    target(s)).

    Done Building Project "ProjectDrive:\Documents and Settings\UserName\My Documents\Visual Studio 2008\Projects\SolutionName\ProjectName\ProjectName.dbproj" (Deploy target(s)).

    Build succeeded.

    0 Warning(s)

    0 Error(s)

    Time Elapsed 00:00:07.32

Pour déployer la base de données en exécutant le script de déploiement

  1. Ouvrez le script de déploiement dans l'éditeur Transact-SQL de votre choix.

    Notes

    Cette procédure suppose que vous utilisez l'éditeur Transact-SQL fourni avec Visual Studio.

    Le script de déploiement compilé s'appelle ProjectName.sql et se trouve dans le dossier SolutionName\ProjectName\sql\Configuration. Configuration est le nom de votre configuration de build, tel que Debug ou Release.

  2. Dans la barre de menus, sélectionnez Données, Éditeur Transact-SQL, Mode SQLCMD Mode, le cas échéant.

    Important

    Si le mode SQLCMD n'est pas activé, des erreurs se produiront lorsque vous exécuterez le script de déploiement, car les instructions :setvar ne sont pas prises en charge.

  3. Dans la barre de menus, sélectionnez Données, Éditeur Transact-SQL, Exécuter SQL pour exécuter le script de déploiement. Lorsque vous y êtes invité, spécifiez les informations de connexion au serveur sur lequel vous souhaitez effectuer le déploiement.

    Le script de déploiement s'exécute et votre base de données est créée.

Déploiement vers plusieurs bases de données ou plusieurs serveurs

Vous pouvez déployer votre schéma vers plusieurs bases de données ou plusieurs serveurs. Si vous effectuez un déploiement vers un petit nombre de serveurs ou de bases de données qui ne changent pas (par exemple si vous voulez effectuer un déploiement à la fois vers votre serveur de déploiement personnel et vers un serveur intermédiaire), vous pouvez créer plusieurs configurations de build. Chaque configuration de build peut avoir un serveur ou une base de données cible différent. Si vous devez effectuer un déploiement vers un plus grand nombre de serveurs ou si les noms du serveur ou de la base de données cible changent régulièrement, vous devez utiliser une approche différente. Ces approches sont décrites ci-dessous.

Pour créer plusieurs configurations de build afin d'effectuer un déploiement vers plusieurs serveurs ou bases de données

  1. Ouvrez votre projet de base de données dans Visual Studio.

  2. Dans le menu Générer, choisissez Gestionnaire de configurations

    La boîte de dialogue Gestionnaire de configurations s'affiche.

  3. Dans la liste Configuration de la solution active, cliquez sur <Nouveau>.

    La boîte de dialogue Nouvelle configuration de solution s'affiche.

  4. Dans Nom, tapez le nom de votre première configuration de serveur.

  5. Si des propriétés de projet étaient déjà configurées dans la configuration Par défaut, dans la liste Copier les paramètres à partir de, cliquez sur Par défaut.

  6. Cliquez sur OK.

  7. Dans la zone de liste Configuration de la solution active, cliquez sur <Nouveau>.

    La boîte de dialogue Nouvelle configuration de solution s'affiche.

  8. Dans Nom, tapez le nom de votre seconde configuration de serveur.

  9. Si des propriétés de projet étaient déjà configurées dans la configuration Par défaut, dans la liste Copier les paramètres à partir de, cliquez sur Par défaut.

    Notes

    Vous pouvez également configurer le nom et la chaîne de connexion de la base de données pour chaque configuration nommée.

  10. Cliquez sur Fermer.

  11. Cliquez avec le bouton droit sur le nœud de votre base de données dans l'Explorateur de solutions, puis cliquez sur Propriétés.

  12. Cliquez sur l'onglet Générer.

  13. Dans Configuration, cliquez sur le nom de votre première configuration de serveur.

  14. Modifiez la connexion cible et le nom de la base de données pour qu'ils correspondent à votre première configuration de serveur.

  15. Dans Configuration, cliquez sur le nom de votre seconde configuration de serveur.

  16. Modifiez la connexion cible et le nom de la base de données pour qu'ils correspondent à votre seconde configuration de serveur.

  17. Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés pour enregistrer vos paramètres de configuration.

    Vous pouvez à présent spécifier une configuration dans la barre d'outils Standard, puis générer ou déployer cette configuration.

Pour déployer dans des bases de données à partir de la ligne de commande à l'aide de MSBuild

  • Dans une fenêtre Invite de commandes, déployez le script de compilation en tapant la ligne de commande suivante (en remplaçant le nom du serveur et la configuration cible par les valeurs appropriées).

    MSBuild /t:Deploy /p:Configuration=TargetConfiguration DatabaseProjectName.dbproj

    Notes

    Pour effectuer un déploiement vers plusieurs serveurs, vous devez substituer la propriété définissant la chaîne de connexion cible en spécifiant ce qui suit dans une fenêtre d'invite de commandes : /p:TargetConnectionString="Data Source=NomServeur;Integrated Security=True;Pooling=False". Vous pouvez définir une configuration pour chaque serveur cible puis spécifier la configuration que vous souhaitez déployer.

Pour déployer un projet de base de données à partir d'une invite de commandes à l'aide de VSDBCMD

  • Important

    Cette procédure suppose que vous avez déjà copié les fichiers nécessaires sur l'ordinateur à partir duquel vous souhaitez exécuter VSDBCMD. Pour plus d'informations, consultez Comment : préparer une base de données pour un déploiement à partir d'une invite de commandes à l'aide de VSDBCMD.EXE.

    Ouvrez la fenêtre d'invite de commandes et tapez la ligne de commande suivante :

     VSDBCMD /a:Deploy /dd:+ /manifest:manifestFileName.dbmanifest
    

    Le manifeste de déploiement fournit les autres paramètres, tels que le nom de la base de données cible, la chaîne de connexion, et ainsi de suite, que vous spécifieriez autrement sur la ligne de commande.

Voir aussi

Tâches

Comment : générer un projet de base de données pour générer un fichier de schéma compilé (.dbschema)

Procédure pas à pas : déploiement de modifications vers une base de données sous contrôle de version existante

Concepts

Vue d'ensemble de la génération et du déploiement d'une base de données

Vue d'ensemble des paramètres de projet de base de données

Historique des modifications

Date

Historique

Motif

Juin 2010

Éclaircissement de l'introduction et ajout d'informations supplémentaires sur le déploiement à l'aide VSDBCMD, en réponse à des commentaires client.

Commentaires client.

Mai 2011

Ajout d'une procédure expliquant comment exécuter un script de déploiement dans l'éditeur Transact-SQL.

Commentaires client.