Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
O ciclo de desenvolvimento de um projeto de banco de dados SQL permite que o desenvolvimento de banco de dados seja integrado em fluxos de trabalho de integração contínua e implantação contínua (CI/CD) conhecidos como uma prática recomendada de desenvolvimento. Embora a implantação de um projeto de banco de dados SQL possa ser feita manualmente, é recomendável usar um pipeline de implantação para automatizar o processo de implantação, de modo que as implantações contínuas sejam executadas com base em seu desenvolvimento local contínuo sem esforço adicional.
Este artigo descreve a criação de um novo projeto SQL, a adição de objetos ao projeto e a configuração de um pipeline de implantação contínua para criar e implantar o projeto com ações do GitHub. O tutorial é um superconjunto do conteúdo do artigo Introdução aos projetos do banco de dados SQL . Embora o tutorial implemente o pipeline de implantação em ações do GitHub, os mesmos conceitos se aplicam ao Azure DevOps, GitLab e outros ambientes de automação.
Neste tutorial, você:
- Criar um novo projeto SQL
- Adicionar objetos ao projeto
- Construa o projeto localmente
- Verifique o projeto no controle do código-fonte
- Adicionar uma etapa de compilação de projeto num pipeline de implantação contínua
- Adicionar uma
.dacpacetapa de implantação a um pipeline de implantação contínua
Se você já concluiu as etapas para começar a usar projetos de banco de dados SQL, pule para a etapa 4. Neste final deste tutorial, seu projeto SQL criará e implantará automaticamente alterações em um banco de dados de destino.
Prerequisites
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Verifique se você tem os seguintes itens para concluir a configuração do pipeline no GitHub:
Uma conta do GitHub onde você pode criar um repositório. Crie um gratuitamente.
As ações do GitHub estão ativadas no repositório.
Note
Para concluir a implantação de um projeto de banco de dados SQL, você precisa acessar uma instância do SQL ou do SQL Server do Azure. Você pode desenvolver localmente gratuitamente com SQL Server developer edition no Windows ou em contêineres .
Etapa 1: Criar um novo projeto
Começamos nosso projeto criando um novo projeto de banco de dados SQL antes de adicionar manualmente objetos a ele. Há outras maneiras de criar um projeto que permitem preencher imediatamente o projeto com objetos de um banco de dados existente, como usar as ferramentas de comparação de esquema .
Selecione Arquivo, Novoe depois Projeto.
Na caixa de diálogo New Project, use o termo SQL Server na caixa de pesquisa. O resultado principal deve ser Projeto de Base de Dados do SQL Server.
Selecione Avançar para prosseguir para a próxima etapa. Forneça um nome de projeto, que não precisa corresponder a um nome de banco de dados. Verifique e modifique o local do projeto conforme necessário.
Selecione Create (Criar) para criar o projeto. O projeto vazio é aberto e visível no Explorador de Soluções para edição.
Selecione Arquivo, Novoe depois Projeto.
Na caixa de diálogo New Project, use o termo SQL Server na caixa de pesquisa. O resultado superior deve ser Projeto de Banco de Dados do SQL Server, estilo SDK (visualização).
Selecione Avançar para prosseguir para a próxima etapa. Forneça um nome de projeto, que não precisa corresponder a um nome de banco de dados. Verifique e modifique o local do projeto conforme necessário.
Selecione Create (Criar) para criar o projeto. O projeto vazio é aberto e visível no Explorador de Soluções para edição.
Na exibição Projetos de Banco de Dados do VS Code ou do Azure Data Studio, selecione o botão Novo Projeto.
O primeiro prompt determina qual modelo de projeto usar, principalmente com base no fato de a plataforma de destino ser SQL Server ou Azure SQL. Se for solicitado a selecionar uma versão específica do SQL, escolha a versão que corresponde ao banco de dados de destino, mas se a versão do banco de dados de destino for desconhecida, escolha a versão mais recente, pois o valor pode ser modificado posteriormente.
Insira um nome de projeto na entrada de texto exibida, que não precisa corresponder a um nome de banco de dados.
Na caixa de diálogo "Selecionar uma pasta" que aparece, selecione um diretório para a pasta do projeto, o arquivo .sqlproj e outros conteúdos serem guardados.
Quando lhe for perguntado se deseja criar um projeto no estilo SDK, selecione Sim.
Uma vez concluído, o projeto vazio é aberto e visível na vista Projetos de Banco de Dados para edição.
Com os modelos .NET para projetos Microsoft.Build.Sql instalados, você pode criar um novo projeto de banco de dados SQL a partir da linha de comando. A opção -n especifica o nome do projeto e a opção -tp especifica a plataforma de destino do projeto.
Use a opção -h para ver todas as opções disponíveis.
# create a new SQL database project
dotnet new sqlproj -n MyDatabaseProject
Etapa 2: Adicionar objetos ao projeto
No Explorador de Soluções , clique com o botão direito no nó do projeto e selecione Adicionar, depois Tabela. A caixa de diálogo Adicionar Novo Item é exibida, onde você pode especificar o nome da tabela. Selecione Adicionar para criar a tabela no projeto SQL.
A tabela é aberta no designer de tabela do Visual Studio com a definição de tabela de modelo, onde você pode adicionar colunas, índices e outras propriedades de tabela. Salve o arquivo quando terminar de fazer as edições iniciais.
Mais objetos de banco de dados podem ser adicionados por meio da caixa de diálogo Adicionar Novo Item, como modos de exibição, procedimentos armazenados e funções. Acesse a caixa de diálogo clicando com o botão direito do mouse no nó do projeto em Gerenciador de Soluções e selecionando Adicionare, em seguida, o tipo de objeto desejado. Os ficheiros no projeto podem ser organizados em pastas através da opção Nova Pasta em Adicionar.
No Gerenciador de Soluções , clique com o botão direito do mouse no nó do projeto e selecione Adicionare, em seguida, Novo Item. A caixa de diálogo Adicionar Novo Item é exibida, selecione Mostrar Todos os Modelos e Tabela. Especifique o nome da tabela como o nome do arquivo e selecione Adicionar para criar a tabela no projeto SQL.
A tabela é aberta no editor de consultas do Visual Studio com a definição de tabela de modelo, onde você pode adicionar colunas, índices e outras propriedades de tabela. Salve o arquivo quando terminar de fazer as edições iniciais.
Mais objetos de banco de dados podem ser adicionados por meio da caixa de diálogo Adicionar Novo Item, como modos de exibição, procedimentos armazenados e funções. Acesse a caixa de diálogo clicando com o botão direito do mouse no nó do projeto em Gerenciador de Soluções e selecionando Adicionare, em seguida, o tipo de objeto desejado após Mostrar Todos os Modelos. Os ficheiros no projeto podem ser organizados em pastas através da opção Nova Pasta em Adicionar.
Na vista Projetos de Banco de Dados do VS Code ou do Azure Data Studio, clique com o botão direito do rato no nó do projeto e selecione Adicionar Tabela. Na caixa de diálogo exibida, especifique o nome da tabela.
A tabela é aberta no editor de texto com a definição de tabela de modelo, onde você pode adicionar colunas, índices e outras propriedades da tabela. Salve o arquivo quando terminar de fazer as edições iniciais.
Mais objetos de banco de dados podem ser adicionados através do menu de contexto no nó do projeto, como exibições, procedimentos armazenados e funções. Acede à caixa de diálogo clicando com o botão direito do rato no nó do projeto na vista Projetos de Base de Dados do VS Code ou do Azure Data Studio e, em seguida, no tipo de objeto desejado. Os ficheiros no projeto podem ser organizados em pastas através da opção Nova Pasta em Adicionar.
Os arquivos podem ser adicionados ao projeto criando-os no diretório do projeto ou em pastas aninhadas. A extensão do arquivo deve ser .sql e a organização por tipo de objeto ou esquema e tipo de objeto é recomendada.
O modelo base para uma tabela pode ser usado como um ponto de partida para criar um novo objeto de tabela no projeto:
CREATE TABLE [dbo].[Table1]
(
[Id] INT NOT NULL PRIMARY KEY
);
Etapa 3: Construir o projeto
O processo de compilação valida as relações entre objetos e a sintaxe em relação à plataforma de destino especificada no arquivo de projeto. A saída de artefato do processo de compilação é um arquivo .dacpac, que pode ser usado para implantar o projeto em um banco de dados de destino e contém o modelo compilado do esquema de banco de dados.
No Gerenciador de Soluções , clique com o botão direito do mouse no nó do projeto e selecione Criar.
A janela de saída abre automaticamente para exibir o processo de compilação. Se houver erros ou avisos, eles serão exibidos na janela de saída. Em uma compilação bem-sucedida, o artefato de compilação (arquivo.dacpac) é criado, seu local é incluído na saída da compilação (o padrão é bin\Debug\projectname.dacpac).
No Gerenciador de Soluções , clique com o botão direito do mouse no nó do projeto e selecione Criar.
A janela de saída abre automaticamente para exibir o processo de compilação. Se houver erros ou avisos, eles serão exibidos na janela de saída. Em uma compilação bem-sucedida, o artefato de compilação (arquivo.dacpac) é criado, seu local é incluído na saída da compilação (o padrão é bin\Debug\projectname.dacpac).
No modo de exibição Projetos de Banco de Dados do VS Code ou do Azure Data Studio, clique com o botão direito do mouse no nó do projeto e selecione Criar.
A janela de saída abre automaticamente para exibir o processo de compilação. Se houver erros ou avisos, eles serão exibidos na janela de saída. Em uma compilação bem-sucedida, o artefato de compilação (arquivo.dacpac) é criado, seu local é incluído na saída da compilação (o padrão é bin/Debug/projectname.dacpac).
Os projetos de banco de dados SQL podem ser criados a partir da linha de comando usando o comando dotnet build.
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
A saída de compilação inclui quaisquer erros ou avisos e os arquivos específicos e números de linha onde eles ocorrem. Em uma compilação bem-sucedida, o artefato de compilação (arquivo.dacpac) é criado, seu local é incluído na saída da compilação (o padrão é bin/Debug/projectname.dacpac).
Etapa 4: Verifique o projeto no controle do código-fonte
Vamos inicializar o nosso projeto como um repositório Git e submeter os ficheiros do projeto ao controlo de versão. Esta etapa é necessária para permitir que o projeto seja compartilhado com outras pessoas e usado em um pipeline de implantação contínua.
No menu Git no Visual Studio, selecione Criar repositório Git.
Na caixa de diálogo Criar um repositório Git, na seção Empurrar para um novo repositório remoto, escolha GitHub.
Na seção Criar um novo repositório GitHub da caixa de diálogo Criar um repositório Git, digite o nome do repositório que você deseja criar. (Se você ainda não entrou na sua conta do GitHub, também pode fazê-lo nesta tela.)
Em Inicializar um repositório Git local, você deve usar a opção de modelo .gitignore para especificar quaisquer arquivos intencionalmente não rastreados que você deseja que o Git ignore. Para saber mais sobre .gitignore, consulte Ignorando ficheiros. E para saber mais sobre licenciamento, consulte Licenciando um repositório.
Depois de entrar e inserir suas informações de repositório, selecione o botão Criar e pressionar para criar seu repositório e adicionar seu aplicativo.
No Gerenciador de Soluções , clique com o botão direito do mouse no nó do projeto e selecione Publicar....
Quando a caixa de diálogo de publicação é aberta, estabelece a conexão ao banco de dados de destino. Se você não tiver uma instância SQL existente para implantação, o LocalDB ((localdb)\MSSQLLocalDB) será instalado com o Visual Studio e poderá ser usado para teste e desenvolvimento.
Especifique um nome de banco de dados e selecione Publicar para implantar o projeto no banco de dados de destino ou Gerar de script para gerar um script a ser revisado antes de executar.
Você pode inicializar o repositório local e publicá-lo diretamente no GitHub do VS Code ou do Azure Data Studio. Essa ação cria um novo repositório em sua conta do GitHub e envia as alterações de código local para o repositório remoto em uma única etapa.
Use o botão Publicar no GitHub na exibição Controle do Código-Fonte no VS Code ou no Azure Data Studio. Em seguida, você será solicitado a especificar um nome e uma descrição para o repositório, bem como se deseja torná-lo público ou privado.
Como alternativa, você pode inicializar um repositório local e enviá-lo por push para o GitHub seguindo as etapas fornecidas ao criar um repositório vazio no GitHub.
Inicialize um novo repositório Git no diretório do projeto e confirme os arquivos do projeto no controle do código-fonte.
git init
git add .
git commit -m "Initial commit"
Crie um novo repositório no GitHub e envie o repositório local para o repositório remoto.
git remote add origin <repository-url>
git push -u origin main
Etapa 5: Adicionar uma etapa de compilação do projeto a um pipeline de implantação contínua
Os projetos SQL são apoiados por uma biblioteca .NET e, como resultado, os projetos são criados com o dotnet build comando. Esse comando é essencial até mesmo para os pipelines mais básicos de integração contínua e implantação contínua (CI/CD). A etapa de construção pode ser adicionada a um pipeline de implantação contínua que criamos nas ações do GitHub.
Na raiz do repositório, crie um novo diretório chamado
.github/workflows. Esse diretório conterá o arquivo de fluxo de trabalho que define o pipeline de implantação contínua.No diretório
.github/workflows, crie um novo arquivo chamadosqlproj-sample.yml.Adicione o seguinte conteúdo ao
sqlproj-sample.ymlarquivo, editando o nome do projeto para corresponder ao nome e ao caminho do seu projeto:name: sqlproj-sample on: push: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build run: dotnet build MyDatabaseProject.sqlprojConfirme o arquivo de fluxo de trabalho no repositório e envie as alterações para o repositório remoto.
No GitHub.com, navegue até a página principal do repositório. Sob o nome do repositório, selecione Ações. Na barra lateral esquerda, selecione o fluxo de trabalho que você acabou de criar. Uma execução recente do fluxo de trabalho deve aparecer na lista de execuções de fluxo de trabalho a partir de quando você enviou o arquivo de fluxo de trabalho para o repositório.
Mais informações sobre os fundamentos da criação do seu primeiro fluxo de trabalho de ações do GitHub estão disponíveis no início rápido de ações do GitHub.
Etapa 6: Adicionar uma .dacpac etapa de implementação a um pipeline de implantação contínua
O modelo compilado de um esquema de banco de dados em um arquivo .dacpac pode ser implantado em um banco de dados de destino usando a ferramenta de linha de comando SqlPackage ou outras ferramentas de implantação. O processo de implantação determina as etapas necessárias para atualizar o banco de dados de destino para corresponder ao esquema definido no .dacpac, criando ou alterando objetos conforme necessário com base nos objetos já existentes no banco de dados. Por exemplo, para implantar um arquivo .dacpac em um banco de dados de destino com base em uma cadeia de conexão:
sqlpackage /Action:Publish /SourceFile:bin/Debug/MyDatabaseProject.dacpac /TargetConnectionString:{yourconnectionstring}
O processo de implantação é idempotente, o que significa que pode ser executado várias vezes sem causar problemas. O pipeline que estamos a criar construirá e implantará o nosso projeto SQL sempre que uma alteração for efetuada na main ramificação do nosso repositório. Em vez de executar o SqlPackage comando diretamente em nosso pipeline de implantação, podemos usar uma tarefa de implantação que abstrai o comando e fornece recursos adicionais, como registro, tratamento de erros e configuração de tarefas. A tarefa de implantação GitHub sql-action pode ser adicionada a um pipeline de implantação contínua em ações do GitHub.
Note
A execução de uma implantação a partir de um ambiente de automação requer a configuração do banco de dados e do ambiente para que a implantação possa alcançar o banco de dados e autenticar. No Banco de Dados SQL do Azure ou no SQL Server em uma VM, isso pode exigir a configuração de uma regra de firewall para permitir que o ambiente de automação se conecte ao banco de dados, bem como fornecer uma cadeia de conexão com as credenciais necessárias. A orientação é fornecida na documentação sql-action do GitHub .
Abra o
sqlproj-sample.ymlarquivo no diretório.github/workflows.Adicione a seguinte etapa ao
sqlproj-sample.ymlarquivo após a etapa de compilação:- name: Deploy uses: azure/sql-action@v2 with: connection-string: ${{ secrets.SQL_CONNECTION_STRING }} action: 'publish' path: 'bin/Debug/MyDatabaseProject.dacpac'Antes de confirmar as alterações, adicione um segredo ao repositório que contém a cadeia de conexão ao banco de dados de destino. No repositório no GitHub.com, navegue até Configurações e, em seguida, Segredos. Selecione Novo segredo do repositório e adicione um segredo nomeado
SQL_CONNECTION_STRINGcom o valor da cadeia de conexão ao banco de dados de destino.Confirme as alterações de
sqlproj-sample.ymlno repositório e envie as alterações para o repositório remoto.Navegue de volta ao histórico do fluxo de trabalho no GitHub.com e selecione a execução mais recente do fluxo de trabalho. A etapa de implantação deve estar visível na lista de etapas para a execução do fluxo de trabalho e o fluxo de trabalho retorna um código de sucesso.
Verifique a implantação conectando-se ao banco de dados de destino e verificando se os objetos no projeto estão presentes no banco de dados.
As implantações do GitHub podem ser ainda mais protegidas estabelecendo uma relação de ambiente em um fluxo de trabalho e exigindo aprovação antes que uma implantação seja executada. Mais informações sobre proteção ambiental e proteção de segredos estão disponíveis na documentação de Ações do GitHub.