Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um perfil de publicação é um arquivo que armazena a configuração de implantação para um projeto SQL. Perfis de publicação podem encapsular informações de conexão de destino, opções de implantação e valores de variável SQLCMD em um arquivo reutilizável .publish.xml . Perfis de publicação são especialmente úteis quando sua implantação exige configurações específicas, como excluir determinados tipos de objeto ou ignorar diferenças de plataforma de destino. Em vez de especificar essas opções sempre que você implantar, salve-as em um perfil de publicação e reutilize-as.
Ao trabalhar com projetos SQL, você pode criar e armazenar vários perfis de publicação. Durante a implantação, selecione um perfil de publicação para aplicar configurações consistentes sem selecionar manualmente várias opções.
Formato de arquivo de perfil de publicação
Um perfil de publicação é um arquivo XML com a .publish.xml extensão. O arquivo contém propriedades e itens que definem o comportamento de implantação no caminho XML /Project/PropertyGroup.
Um perfil de publicação pode incluir as seguintes informações:
- Target cadeia de conexão - a cadeia de conexão do servidor de banco de dados de destino
- Nome do banco de dados de destino – o nome do banco de dados no qual implantar
- Opções de implantação – configurações que controlam o comportamento da implantação, como se os objetos não devem ser removidos na origem ou bloquear uma possível perda de dados
- Valores de variável SQLCMD – valores para variáveis SQLCMD definidas no projeto SQL, aplicados no momento da implantação
Perfil de publicação de exemplo
O exemplo a seguir mostra um perfil de publicação direcionado a uma instância de SQL Server local. Ele define duas opções de implantação e fornece um valor para uma variável SQLCMD:
<?xml version="1.0" encoding="utf-8"?>
<Project >
<PropertyGroup>
<IncludeCompositeObjects>True</IncludeCompositeObjects>
<TargetDatabaseName>AdventureWorks</TargetDatabaseName>
<AllowIncompatiblePlatform>True</AllowIncompatiblePlatform>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<Value>staging</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Publicar entrada de perfil no arquivo de projeto
Quando você adiciona um perfil de publicação a um projeto SQL, ele adiciona uma entrada ao arquivo de projeto (.sqlproj) que inclui o caminho para o arquivo de perfil de publicação:
<ItemGroup>
<None Include="Staging.publish.xml" />
</ItemGroup>
Embora você possa especificar qualquer perfil de publicação usando o /Profile: parâmetro com o SqlPackage, os perfis de publicação incluídos no arquivo de projeto aparecem na exibição do gerenciador de soluções ou projetos de banco de dados da ferramenta de projeto do SQL. Esse recurso facilita o gerenciamento e a seleção durante a implantação.
Opções de implantação em perfis de publicação
As opções de implantação controlam o comportamento do mecanismo de implantação ao aplicar alterações a um banco de dados de destino. Essas opções correspondem às propriedades disponíveis na ação Publicar SqlPackage e à DacDeployOptions classe na API da DacFx.
As opções de implantação comumente usadas incluem:
| Opção | Default | Descrição |
|---|---|---|
AllowIncompatiblePlatform |
False |
Tenta a implantação mesmo se houver diferenças de compatibilidade de plataforma. |
BlockOnPossibleDataLoss |
True |
Interromperá a implantação se uma alteração puder resultar em perda de dados. |
DropObjectsNotInSource |
False |
Descarta objetos no banco de dados de destino que não existem no projeto de origem. |
IgnoreColumnOrder |
False |
Ignora as diferenças na ordem da coluna entre a origem e o destino. |
ScriptDatabaseOptions |
True |
Scripts opções no nível do banco de dados, como nível de compatibilidade durante a implantação. |
Para obter uma lista completa das opções de implantação e seus valores padrão, consulte as propriedades de Publicação do SqlPackage.
Variáveis SQLCMD em perfis de publicação
As variáveis SQLCMD definidas em um projeto SQL podem ter seus valores definidos em um perfil de publicação. Quando o perfil de publicação é usado para implantação, os valores da variável SQLCMD do perfil substituem quaisquer valores padrão no projeto.
O perfil de publicação armazena variáveis SQLCMD como <SqlCmdVariable> itens:
<ItemGroup>
<SqlCmdVariable Include="EnvironmentName">
<Value>staging</Value>
</SqlCmdVariable>
<SqlCmdVariable Include="FirstHistoricalYear">
<Value>2005</Value>
</SqlCmdVariable>
</ItemGroup>
Valores especificados na linha de comando com /v: substituem tanto os valores padrão do projeto quanto os valores do perfil de publicação.
Usar perfis de publicação com ferramentas
Os perfis de publicação têm suporte nas ferramentas de projeto do SQL e na interface de linha de comando do SqlPackage.
No Visual Studio (SSDT), crie e carregue perfis de publicação da caixa de diálogo Publish. Quando você define as configurações de implantação e seleciona Salvar Perfil Como, as configurações são salvas em um .publish.xml arquivo. Você pode carregar um perfil salvo anteriormente selecionando Carregar Perfil na caixa de diálogo Publicar. Os perfis de publicação são armazenados como itens no projeto SQL e aparecem em Gerenciador de Soluções.
Adicione novos perfis de publicação ao projeto com a caixa de diálogo Adicionar Novo Item e selecionando o modelo de item Publicar Perfil . Adicione arquivos de perfil de publicação existentes ao projeto usando Adicionar > Item Existente.
Quando você clica duas vezes em um perfil de publicação do Gerenciador de Soluções, ele abre a caixa de diálogo Publish com as configurações do perfil aplicado. Você pode examinar ou modificar essas configurações antes da implantação.
Em projetos SQL no estilo SDK em Visual Studio, crie e carregue perfis de publicação da caixa de diálogo Publish. Quando você define as configurações de implantação e seleciona Salvar Perfil Como, as configurações são salvas em um .publish.xml arquivo. Você pode carregar um perfil salvo anteriormente selecionando Carregar Perfil na caixa de diálogo Publicar.
Em Visual Studio Code com a extensão Projetos do Banco de Dados SQL, crie perfis de publicação da caixa de diálogo Publish usando a opção Save As. O perfil de publicação é salvo como um .publish.xml arquivo que você pode adicionar ao projeto. Você pode carregar um perfil salvo anteriormente selecionando-o na caixa de diálogo Selecionar Perfil na caixa de diálogo Publicar .
Adicione novos perfis de publicação ao projeto selecionando a opção Adicionar Perfil de Publicação no menu de contexto do projeto. Adicione arquivos de perfil de publicação existentes ao projeto com Adicionar Item Existente....
Em Visual Studio Code com a extensão Projetos de Banco de Dados SQL, os perfis de publicação aparecem no nó do projeto na exibição Database Projects. Ao publicar um projeto, você pode selecionar um perfil de publicação existente ou continuar sem um.
No SSMS (SQL Server Management Studio), crie e carregue perfis de publicação da caixa de diálogo Publish. Quando você define as configurações de implantação e seleciona Salvar Perfil Como, as configurações são salvas em um .publish.xml arquivo. Você pode carregar um perfil salvo anteriormente selecionando Carregar Perfil na caixa de diálogo Publicar. Os perfis de publicação são armazenados como itens no projeto SQL e aparecem em Gerenciador de Soluções.
Adicione novos perfis de publicação ao projeto com a caixa de diálogo Adicionar Novo Item e selecionando o modelo de item Publicar Perfil . Adicione arquivos de perfil de publicação existentes ao projeto usando Adicionar > Item Existente.
Com a interface de linha de comando do SqlPackage, especifique um perfil de publicação com o /Profile: parâmetro (ou /pr:) :
sqlpackage /Action:Publish /SourceFile:AdventureWorks.dacpac /Profile:production.publish.xml
Propriedades e valores de variável SQLCMD especificados na linha de comando substituem valores no perfil de publicação. Para obter mais informações, consulte SqlPackage Publish.