Personalize a compilação e a implantação do banco de dados usando os colaboradores de compilação e implantação
O Visual Studio fornece os pontos de extensibilidade que você pode usar para modificar o comportamento das ações de compilação e implantação de projetos de banco de dados.
Pontos de extensibilidade disponíveis
Você pode criar uma extensão para os pontos de extensibilidade, conforme mostrado na seguinte tabela:
Ação | Tipo de colaborador | Observações |
---|---|---|
Build | BuildContributor | Esse tipo de extensão é executado quando o projeto SQL é compilado depois que o modelo de projeto tiver sido completamente validado. O colaborador de compilação pode acessar o modelo concluído, além de todas as propriedades da tarefa de compilação e todos os argumentos personalizados. |
Implantar | DeploymentPlanModifier | Esse tipo de extensão foi executado quando o projeto SQL foi implantado, como parte do pipeline de implantação, depois que o plano de implantação foi gerado, mas antes de o plano de implantação ser executado. Você pode usar um DeploymentPlanModifier para modificar o plano de implantação adicionando ou removendo etapas. Os colaboradores de implantação podem acessar o plano de implantação, os resultados da comparação e os modelos de origem e destino. |
Implantar | DeploymentPlanExecutor | Esse tipo de extensão é executado quando o plano de implantação é executado e fornece acesso somente leitura para o plano de implantação. O DeploymentPlanExecutor executa ações com base no plano de implantação. |
Cenários de extensibilidade com suporte
Você pode implementar os colaborador de compilação ou implantação para habilitar os seguintes cenários de exemplo:
Gerar a documentação do esquema durante a compilação do projeto - para dar suporte a esse cenário, você implementa um BuildContributor e substitui o método OnExecute para gerar a documentação do esquema. Você pode criar um arquivo de destino que define os argumentos padrão que controlam se a extensão é executada e para especificar o nome do arquivo de saída.
Gerar um relatório de diferença quando um projeto SQL é implantado - para dar suporte a esse cenário, você implementa um DeploymentPlanExecutor que gera o arquivo XML quando o projeto SQL é implantado.
Modificar o plano de implantação para alterar quando a movimentação dos dados ocorrer - para dar suporte a esse cenário, você implementa uma DeploymentPlanModifier e o itera no plano de implantação. Para cada SqlTableMigrationStep nesse plano, você examinará o resultado da comparação para determinar se essa etapa deve ser executada ou ignorada.
Copiar os arquivos para o dacpac gerado quando um projeto SQL foi implantado - para dar suporte a esse cenário, você implementa um colaborador de implantação e substitui o método OnEstablishDeploymentConfiguration para especificar quais arquivos são marcados como DeploymentExtensionConfiguration pelo sistema de projeto. Esses arquivos devem ser copiados para a pasta de saída e adicionado ao dacpac gerado. Você também pode modificar o colaborador para mesclar vários arquivos em um novo arquivo que será copiado para a pasta de saída e adicionado ao manifesto de implantação. Durante a implantação, você pode implementar o método OnApplyDeploymentConfiguration para extrair os arquivos do dacpac e para prepará-los para serem usados no método OnExecute.
Além disso, você pode expor pares personalizados de argumentos de nome/valor de seu colaborador que são gravados no arquivo de projeto de banco de dados. Você pode usar esses argumentos para habilitar o colaborador para extrair informações do MSBuild ou permitir que o usuário final do seu colaborador personalize o comportamento. Por exemplo, você pode permitir que os usuários especifiquem o nome de um arquivo de entrada ou saída.
Tarefas comuns
Tarefas comuns | Conteúdo de suporte |
---|---|
Saiba mais sobre os pontos de extensibilidade: você pode ler sobre as classes base que usa para implementar os colaboradores de build e implantação. | BuildContributor DeploymentContributor |
Criar colaboradores de exemplo: conheça as etapas necessárias para criar um colaborador de compilação ou implantação. Se você seguir esse passo a passo, você poderá: – Criar um colaborador de compilação que gera um relatório que lista todos os elementos no modelo. – Criar um colaborador de implantação que altera o plano de implantação antes de ser executado. – Criar um colaborador de implantação que gera um relatório de implantação quando você implanta um projeto SQL. Você pode criar todos os seus colaboradores em um único assembly ou entre vários assemblies, dependendo de como você deseja que os colaboradores sejam distribuídos em sua equipe. |
Passo a passo: Estender o build do projeto de banco de dados para gerar as estatísticas do modelo Passo a passo: estenda a implantação do projeto de banco de dados para modificar o plano de implantação Passo a passo: Estender a implantação do projeto de banco de dados para analisar o plano de implantação |
Consulte Também
Definir condições personalizadas para testes de unidade do SQL
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de