Partager via


Personnaliser la génération et le déploiement d'une base de données à l'aide de collaborateurs de génération et de déploiement

Visual Studio fournit des points d'extensibilité que vous pouvez utiliser pour modifier le comportement des actions de déploiement et de génération pour les projets de base de données. Ces points d'extension sont définis de telle sorte qu'ils peuvent s'appliquer à toute implémentation de fournisseur de schémas de la base de données (DSP, Database Schema Provider).

Points d'extensibilité disponibles

Vous pouvez créer une extension pour les points d'extensibilité, comme indiqué dans le tableau suivant :

Action

Type de collaborateur

Remarques

Build

BuildContributor

Ce type d'extension est exécuté lorsque le projet de base de données est construit après que le modèle de projet a été complètement validé. Le collaborateur de génération peut accéder au modèle complété, en plus de toutes les propriétés de la tâche Build et de tous les arguments personnalisés.

Déploiement

DeploymentPlanModifier

Ce type d'extension est exécuté lorsque le projet de base de données est déployé, dans le cadre du pipeline de déploiement, après que le plan de déploiement a été généré, mais avant que le plan de déploiement ne soit exécuté. Vous pouvez utiliser un DeploymentPlanModifier pour modifier le plan de déploiement en ajoutant ou en supprimant des étapes. Les collaborateurs de déploiement peuvent accéder au plan de déploiement, aux résultats de comparaison et aux modèles source et cible.

Déploiement

DeploymentPlanExecutor

Ce type d'extension est exécuté lorsque le plan de déploiement est exécuté et fournit l'accès en lecture seule au plan de déploiement. Le DeploymentPlanExectutor exécute des actions selon le plan de déploiement.

Scénarios d'extensibilité pris en charge

Vous pouvez implémenter des collaborateurs de génération ou de déploiement pour permettre les exemples de scénarios suivants :

  • Générer la documentation de schéma pendant une génération de projet
    Pour prendre en charge ce scénario, vous implémentez un BuildContributor et substituez la méthode OnExecute pour générer la documentation de schéma. Vous pouvez substituer la méthode OnPopulateArguments pour exposer des arguments par défaut qui contrôlent si l'extension s'exécute et pour spécifier le nom du fichier de sortie.

  • Créer un rapport de différence lorsqu'un projet de base de données est déployé
    Pour prendre en charge ce scénario, vous implémentez un DeploymentPlanExecutor qui génère le fichier XML lorsque le projet de base de données est déployé.

  • Modifier le plan de déploiement afin de changer le moment où le déplacement de données se produit
    Pour prendre en charge ce scénario, vous implémentez un DeploymentPlanModifier et itérez sur la lecture du déploiement. Pour chaque SqlTableMigrationStep dans ce plan, vous examinez le résultat de la comparaison afin de déterminer si cette étape doit être exécutée ou ignorée.

  • Copier les fichiers vers le dossier de sortie de la génération lorsqu'un projet de base de données est déployé
    Pour prendre en charge ce scénario, vous implémentez un collaborateur de déploiement et substituez la méthode OnEstablishDeploymentConfiguration pour spécifier les fichiers marqués comme DeploymentConfigurationExtension (par le système de projet) qui doivent être copiés dans le dossier de sortie. Vous pouvez également modifier le collaborateur pour fusionner plusieurs fichiers dans un nouveau fichier qui est copié dans le dossier de sortie et ajouté au manifeste de déploiement.

De plus, vous pouvez exposer des paires personnalisées d'arguments nom/valeur de votre collaborateur qui sont écrites dans le fichier projet de base de données. Vous pouvez utiliser ces arguments pour permettre au collaborateur d'extraire les informations de MSBuild ou permettre à l'utilisateur final de votre collaborateur de personnaliser le comportement. Par exemple, vous pourriez permettre aux utilisateurs de spécifier le nom d'un fichier d'entrée ou de sortie.

Tâches courantes

Tâches courantes

Contenu de support

En savoir plus sur les points d'extensibilité : vous pouvez lire des informations sur les classes de base que vous utilisez pour implémenter les collaborateurs de génération et de déploiement.

Créer des exemples de collaborateurs : étudiez les étapes requises pour créer un collaborateur de génération ou de déploiement. Si vous suivez ces procédures pas à pas, vous pourrez :

  • créer un collaborateur de génération qui crée un rapport répertoriant tous les éléments dans le modèle ;

  • créer un collaborateur de déploiement qui modifie le plan de déploiement avant qu'il ne soit exécuté ;

  • créer un collaborateur de déploiement qui crée un rapport de déploiement lorsque vous déployez un projet de base de données.

Vous pouvez créer tous vos collaborateurs dans un seul ou dans plusieurs assemblys, selon la façon dont vous souhaitez répartir les collaborateurs au sein de votre équipe.

Distribuer les collaborateurs de génération et de déploiement aux membres de l'équipe : une fois que vous avez vérifié que vos collaborateurs fonctionnent correctement, vous pouvez les distribuer à votre équipe. Vous pouvez demander à chaque membre de l'équipe d'installer et d'enregistrer manuellement l'extension de fonctionnalité, ou de concevoir un simple programme d'installation pour celle-ci.

Scénarios connexes

Créer des types ou cibles de refactorisation de base de données personnalisés

Créer et inscrire des règles supplémentaires pour l'analyse du code d'une base de données

Générer des données de test spécialisées à l'aide d'un générateur de données personnalisé

Définir des conditions personnalisées pour les tests unitaires de base de données

Voir aussi

Concepts

Extension des fonctionnalités de base de données de Visual Studio

Générer et déployer des bases de données dans un environnement de développement isolé

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