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
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
banco 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. While deployment of a SQL database project can be done manually, it's recommended to use a deployment pipeline to automate the deployment process such that ongoing deployments are run based on your continued local development without additional effort.
This article steps through creating a new SQL project, adding objects to the project, and setting up a continuous deployment pipeline for building and deploying the project with GitHub actions. The tutorial is a superset of the contents of the Get started with SQL database projects article. While the tutorial implements the deployment pipeline in GitHub actions, the same concepts apply to Azure DevOps, GitLab, and other automation environments.
Neste tutorial, você:
- Create a new SQL project
- Add objects to the project
- Construa o projeto localmente
- Check the project into source control
- Add a project build step to a continuous deployment pipeline
- Add a
.dacpac
deployment step to a continuous deployment pipeline
If you've already completed the steps to get started with SQL database projects, you can skip to step 4. At this end of this tutorial, your SQL project will be automatically building and deploying changes to a target database.
Pré-requisitos
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Make sure you have the following items to complete the pipeline setup in GitHub:
Uma conta do GitHub onde você pode criar um repositório. Crie um gratuitamente.
GitHub actions is enabled on your repository.
Observação
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. The top result should be SQL Server Database Project.
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.
Once completed, the empty project is opened and visible in the Database Projects view for editing.
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.
# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject
Etapa 2: Adicionar objetos ao projeto
In Solution Explorer, right-click the project node and select Add, then Table. 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.
In the Database Projects view of VS Code or Azure Data Studio, right-click the project node and select Add Table. 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. The artifact output from the build process is a .dacpac
file, which can be used to deploy the project to a target database and contains the compiled model of the database schema.
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
).
Step 4: Check the project into source control
We will initialize our project as a Git repository and commit the project files to source control. This step is necessary to enable the project to be shared with others and to be used in a continuous deployment pipeline.
From the Git menu in Visual Studio, select Create Git Repository.
In the Create a Git repository dialog, under the Push to a new remote section, choose 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.)
Under Initialize a local Git Repository, you should use the .gitignore template option to specify any intentionally untracked files that you want Git to ignore. To learn more about .gitignore, see Ignoring files. 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....
The publish dialog opens, where you establish the target database connection. 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.
You can initialize and local repository and publish it directly to GitHub from VS Code or Azure Data Studio. This action creates a new repository on your GitHub account and pushes your local code changes to the remote repository in a single step.
Use the Publish to GitHub button in the Source Control view in VS Code or Azure Data Studio. You're then prompted to specify a name and description for the repository, and as well as whether to make it public or private.
Alternatively, you can initialize a local repository and push it to GitHub following the steps provided when you create an empty repository on GitHub.
Initialize a new Git repository in the project directory and commit the project files to source control.
git init
git add .
git commit -m "Initial commit"
Create a new repository on GitHub and push the local repository to the remote repository.
git remote add origin <repository-url>
git push -u origin main
Step 5: Add a project build step to a continuous deployment pipeline
SQL projects are backed by a .NET library and as a result the projects are built with the dotnet build
command. This command is a staple of even the most basic continuous integration and continuous deployment (CI/CD) pipelines. The build step can be added to a continuous deployment pipeline we create in GitHub actions.
In the root of the repository, create a new directory named
.github/workflows
. This directory will contain the workflow file that defines the continuous deployment pipeline.No diretório
.github/workflows
, crie um novo arquivo chamadosqlproj-sample.yml
.Add the following content to the
sqlproj-sample.yml
file, editing the project name to match the name and path of your project: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.sqlproj
Commit the workflow file to the repository and push the changes to the remote repository.
On GitHub.com, navigate to the main page of the repository. Under your repository name, select Actions. In the left sidebar, select the workflow you just created. A recent run of the workflow should appear in the list of workflow runs from when you pushed the workflow file to the repository.
More information on the fundamentals of creating your first GitHub actions workflow is available in the GitHub Actions quickstart.
Step 6: Add a .dacpac
deployment step to a continuous deployment pipeline
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}
The deployment process is idempotent, meaning it can be run multiple times without causing issues. The pipeline we're creating will build and deploy our SQL project every time a change is checked into the main
branch of our repository. Instead of executing the SqlPackage
command directly in our deployment pipeline, we can use a deployment task that abstracts the command and provides additional features such as logging, error handling, and task configuration. The deployment task GitHub sql-action can be added to a continuous deployment pipeline in GitHub actions.
Observação
Running a deployment from an automation environment requires configuring the database and environment such that the deployment can reach the database and authenticate. In Azure SQL Database or SQL Server in a VM, this might require setting up a firewall rule to allow the automation environment to connect to the database as well as providing a connection string with the necessary credentials. Guidance is provided in the GitHub sql-action documentation.
Open the
sqlproj-sample.yml
file in the.github/workflows
directory.Add the following step to the
sqlproj-sample.yml
file after the build step:- name: Deploy uses: azure/sql-action@v2 with: connection-string: ${{ secrets.SQL_CONNECTION_STRING }} action: 'publish' path: 'bin/Debug/MyDatabaseProject.dacpac'
Before committing the changes, add a secret to the repository that contains the connection string to the target database. In the repository on GitHub.com, navigate to Settings, then Secrets. Select New repository secret and add a secret named
SQL_CONNECTION_STRING
with the value of the connection string to the target database.Commit the changes from
sqlproj-sample.yml
to the repository and push the changes to the remote repository.Navigate back to the workflow history on GitHub.com and select the most recent run of the workflow. The deployment step should be visible in the list of steps for the workflow run and the workflow returns a success code.
Verify the deployment by connecting to the target database and checking that the objects in the project are present in the database.
GitHub deployments can be further secured by establishing an environment relationship in a workflow and requiring approval before a deployment is run. More information on environment protection and protecting secrets is available in the GitHub Actions documentation.