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.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Armazenar o esquema de banco de dados no Git oferece vários benefícios, incluindo controle de versão, colaboração e a capacidade de controlar as alterações ao longo do tempo. Essa abordagem é particularmente útil para o desenvolvimento de código em que você define o esquema de banco de dados por meio do código e aplica alterações diretamente a um ambiente de desenvolvimento usando um ORM ou agente de codificação como GitHub Copilot.
Neste tutorial, você aprenderá a armazenar o esquema de banco de dados no Git e gerenciá-lo como parte do fluxo de trabalho de desenvolvimento.
- Criar um novo projeto SQL de um banco de dados existente
- Confirmar e enviar por push o código do banco de dados para um repositório remoto Git
- Aplicar alterações do banco de dados ao código existente
- Puxar as alterações do repositório remoto do Git e aplicá-las ao banco de dados local (opcional)
Quando terminar, você estará pronto para acompanhar seu banco de dados no controle do código-fonte e colaborar com sua equipe em alterações de banco de dados por meio de um repositório Git.
Note
Para concluir o tutorial, você precisa de acesso a um banco de dados SQL. Você pode desenvolver localmente sem custo usando o SQL Server Developer Edition no Windows ou em contêineres.
Pré-requisitos
Warning
Este tutorial não está disponível para os projetos no estilo SDK (versão prévia) no Visual Studio 2022. Use o SQL Server Management Studio (SSMS) ou o Visual Studio Code.
# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage
# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates
Etapa 1: criar um projeto SQL a partir de um banco de dados existente
Para representar seu banco de dados no controle do código-fonte, use o formato de projeto do banco de dados SQL . O projeto inclui .sql arquivos para cada objeto de banco de dados e um .sqlproj com configurações de banco de dados. Quando você exibe o projeto no explorador de arquivos e no controle do código-fonte, a estrutura de um projeto SQL espelha a navegação no banco de dados no pesquisador de objetos.
No SQL Server Pesquisador de Objetos no Visual Studio, clique com o botão direito do mouse no banco de dados do qual você deseja criar um project e selecione Criate New Project... .
Na caixa de diálogo Criar Novo Projeto, insira um nome do projeto. O nome do projeto não precisa corresponder a um nome de banco de dados. Verifique e modifique o local do projeto conforme necessário. As configurações de importação padrão importam os objetos para pastas por esquema e, em seguida, por tipo de objeto. Você pode modificar as configurações de importação para alterar a estrutura de pastas ou incluir permissões nos objetos que estão sendo importados. Inicie a importação.
A caixa de diálogo Importar Banco de Dados exibe o progresso da importação como mensagens. Quando a importação for concluída, você poderá ver os objetos importados no Gerenciador de Soluções. O processo armazena os logs em um arquivo no diretório do projeto em Import Schema Logs. Selecione Concluir.
Warning
Este tutorial não está disponível para os projetos no estilo SDK (versão prévia) no Visual Studio 2022. Use o SQL Server Management Studio (SSMS) ou o Visual Studio Code.
No modo de exibição do pesquisador de objetos de banco de dados no Visual Studio Code, selecione um banco de dados do qual você deseja criar um projeto. Clique com o botão direito do mouse no banco de dados e selecione Criar projeto por meio de banco de dados.
No Visual Studio Code, a caixa de diálogo Criar projeto a partir do banco de dados requer o nome e o local do projeto. As configurações de importação padrão importam os objetos para pastas por esquema e, em seguida, por tipo de objeto. Você pode selecionar uma estrutura de pasta diferente ou optar por incluir permissões nos objetos que estão sendo importados antes de selecionar Criar.
Abra a visualização Projetos de Banco de Dados para ver o novo projeto e as definições de objeto importado.
No Pesquisador de Objetos em SQL Server Management Studio, clique com o botão direito do mouse no banco de dados do qual você deseja criar um project e selecione Criar Project do Banco de Dados... no menu Tarefas.
Na caixa de diálogo Criar Projeto SQL a partir do Banco de Dados, verifique o banco de dados selecionado e altere o nome e o local do projeto conforme necessário. O novo projeto é criado com os objetos do banco de dados selecionado e organizado em pastas por esquema e, em seguida, tipo de objeto.
Um arquivo de solução é criado automaticamente na pasta acima da pasta do projeto e é aberto no Gerenciador de Soluções após a criação. Se você quiser adicionar seu novo projeto a uma solução existente, selecione Adicionar à solução e navegue até o arquivo de solução. Selecione Criar para criar o projeto.
Use a CLI do SqlPackage para extrair o esquema de um banco de dados existente para um projeto SQL. O comando SqlPackage a seguir extrai o esquema de um banco de dados para um projeto SQL completo. Os .sql arquivos são organizados por pastas aninhadas de tipo de objeto e esquema e um .sqlproj arquivo é criado para gerenciar o projeto com propriedades definidas que correspondem às opções do banco de dados.
sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProject
Etapa 2: Confirmar e enviar por push o código do banco de dados para um repositório remoto git
Depois de criar o projeto SQL, inicie a linha do tempo do Git para o banco de dados em um repositório Git local.
Com o projeto SQL aberto em Visual Studio, crie um repositório Git local e envie-o por push para um remoto.
Selecione Git>Criar Repositório Git na barra de menus.
Na caixa de diálogo Criar um Repositório Git, em Push para uma nova seção remota, escolha GitHub ou Azure DevOps. Se você optar por fazer push para o GitHub, faça login na sua conta do GitHub quando solicitado. Se você escolher Azure DevOps, entre em sua conta Azure DevOps e selecione ou crie um projeto.
Insira um nome e uma descrição do repositório. Verifique se o modelo de .gitignore está definido como VisualStudio e selecione Criar e enviar.
O Visual Studio cria o repositório Git local, faz um commit inicial dos seus arquivos de projeto SQL e o envia para o repositório remoto.
Para verificar se o código foi enviado por push com êxito, abra um navegador e navegue até o repositório em GitHub (https://github.com) ou Azure DevOps (https://dev.azure.com). Você deve ver os arquivos de projeto do SQL, incluindo o .sqlproj arquivo e as definições de .sql objeto.
Para obter mais informações, consulte Sobre o Git no Visual Studio.
Warning
Este tutorial não está disponível para os projetos no estilo SDK (versão prévia) no Visual Studio 2022. Use o SQL Server Management Studio (SSMS) ou o Visual Studio Code.
Com a pasta de projeto do SQL aberta em Visual Studio Code, inicialize um repositório Git local e envie-o por push para um remoto.
Abra a exibição Controle de Código-Fonte selecionando o ícone Controle de Código-Fonte na Barra de Atividades, ou pressione
Ctrl+Shift+G.Selecione Inicializar Repositório para criar um novo repositório Git na pasta atual.
Todos os arquivos de projeto aparecem como alterações não rastreadas. Selecione o ícone + ao lado de Alterações para preparar todos os arquivos.
Insira uma mensagem de confirmação, como
Initial commit of SQL projectna caixa de entrada da mensagem e selecione o botão Confirmar (ícone de marca de seleção).Selecione Publicar Branch na visualização de Controle de Origem para enviar seu repositório local para um repositório remoto. Escolha se deseja publicar para GitHub ou Azure DevOps e siga os prompts de entrada. Selecione uma visibilidade do repositório (pública ou privada) e confirme.
Para verificar se o código foi enviado por push com êxito, abra um navegador e navegue até o repositório em GitHub (https://github.com) ou Azure DevOps (https://dev.azure.com). Você deve ver os arquivos de projeto do SQL, incluindo o .sqlproj arquivo e as definições de .sql objeto.
Para obter mais informações, consulte o Controle do Código-Fonte no Visual Studio Code.
Com o projeto SQL aberto em SQL Server Management Studio, crie um repositório Git local e envie-o por push para um remoto.
Selecione Git>Criar Repositório Git na barra de menus.
Na caixa de diálogo Criar um Repositório Git, em Push para uma nova seção remota, escolha GitHub ou Azure DevOps. Se você optar por enviar as alterações para o GitHub, faça login na sua conta do GitHub quando solicitado. Se você escolher Azure DevOps, entre em sua conta Azure DevOps e selecione ou crie um projeto.
Insira um nome e uma descrição do repositório. Verifique se o modelo do .gitignore está definido como VisualStudio e selecione Criar e enviar.
O SSMS cria o repositório Git local, faz um commit inicial com os arquivos do seu projeto SQL e o envia ao repositório remoto.
Para verificar se o código foi enviado por push com êxito, abra um navegador e navegue até o repositório em GitHub (https://github.com) ou Azure DevOps (https://dev.azure.com). Você deve ver os arquivos de projeto do SQL, incluindo o .sqlproj arquivo e as definições de .sql objeto.
Para obter mais informações, consulte Sobre o Git no Visual Studio.
No diretório do projeto SQL, inicialize um repositório Git local, confirme todos os arquivos e envie por push para um remoto.
Inicialize um novo repositório Git, adicione um
.gitignorearquivo e faça uma confirmação inicial:cd MyDatabaseProject git init dotnet new gitignore git add . git commit -m "Initial commit of SQL project"Crie um novo repositório remoto em GitHub ou Azure DevOps:
-
GitHub: acesse https://github.com/new e crie um novo repositório. Não o inicialize com um README,
.gitignore, ou uma licença. - Azure DevOps: vá para seu projeto de Azure DevOps, selecione Repos e crie um novo repositório. Desmarque Adicionar um README.
-
GitHub: acesse https://github.com/new e crie um novo repositório. Não o inicialize com um README,
Adicione o controle remoto e envie por push a confirmação inicial:
git remote add origin <your-repository-url> git push -u origin mainSubstitua
<your-repository-url>pela URL fornecida por GitHub ou Azure DevOps quando você criou o repositório.
Para verificar se o código foi enviado por push com êxito, abra um navegador e vá para o repositório. Você deve ver os arquivos de projeto do SQL, incluindo o .sqlproj arquivo e as definições de .sql objeto.
Etapa 3: Aplicar alterações do banco de dados ao código existente
Quando o esquema de banco de dados é alterado fora do projeto SQL (por exemplo, por meio de modificações diretas em um banco de dados, uma migração ORM ou ações agente), você pode atualizar o projeto para refletir essas alterações.
Use a comparação de esquema para atualizar o projeto SQL do banco de dados.
Em SQL Server Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Comparação de Esquema.
Na janela Comparação de Esquemas , o banco de dados é definido como a origem. Selecione a lista suspensa Selecionar Destino e escolha Selecionar Destino.
Na caixa de diálogo Selecionar Esquema de Destino, selecione Projeto e escolha seu projeto de banco de dados SQL. Selecione OK.
Selecione Comparar para executar a comparação. Os resultados exibem as diferenças entre o banco de dados (origem) e o projeto (destino).
Examine as diferenças. Desmarque as alterações que você não deseja aplicar ao projeto.
Selecione Atualizar para aplicar as alterações selecionadas ao projeto SQL.
Os arquivos de projeto são atualizados para corresponder ao esquema de banco de dados. Examine as alterações na janela Alterações do Git , insira uma mensagem de confirmação e selecione Confirmar Tudo. Selecione Push para enviar por push as alterações para o repositório remoto.
Warning
Este tutorial não está disponível para os projetos no estilo SDK (versão prévia) no Visual Studio 2022. Use o SQL Server Management Studio (SSMS) ou o Visual Studio Code em vez disso.
Use o comando Atualizar Projeto do Banco de Dados para atualizar o projeto SQL a partir do banco de dados.
No Explorador de Objetos do banco de dados, clique com o botão direito do mouse no banco de dados e selecione Projetos de Banco de Dados SQL>Atualizar Projeto do Banco de Dados.
Selecione o projeto do banco de dados SQL para atualizar e confirmar.
A comparação é executada e aplica as alterações do banco de dados ao projeto. Os arquivos atualizados
.sqlaparecem na exibição controle do código-fonte como arquivos modificados.
Examine as alterações no modo de exibição controle do código-fonte , prepare os arquivos modificados, insira uma mensagem de confirmação e selecione Confirmar. Selecione Sincronizar Alterações para enviar por push a confirmação para o repositório remoto.
Use a comparação de esquema para atualizar o projeto SQL do banco de dados.
No Pesquisador de Objetos, clique com o botão direito do mouse no banco de dados e selecione Tasks>Comparação de Esquema (versão prévia).
Na janela Comparação de Esquemas , o banco de dados é definido como a origem. Selecione o botão de reticências de destino e escolha seu projeto de banco de dados SQL como destino.
Selecione Comparar para executar a comparação. Os resultados exibem as diferenças entre o banco de dados (origem) e o projeto (destino).
Examine as diferenças. Desmarque as alterações que você não deseja aplicar ao projeto.
Selecione Aplicar para aplicar as alterações selecionadas ao projeto SQL.
Os arquivos de projeto são atualizados para corresponder ao esquema de banco de dados. Examine as alterações na janela Alterações do Git , insira uma mensagem de confirmação e selecione Confirmar Tudo. Selecione Push para enviar por push as alterações para o repositório remoto.
Use o SqlPackage para regenerar o projeto SQL do banco de dados, substituindo os arquivos de projeto existentes pelo esquema de banco de dados atual. Embora as outras ferramentas de projeto do SQL forneçam uma interface gráfica, o SqlPackage oferece uma abordagem de linha de comando para automação que não oferece uma oportunidade de examinar as alterações de arquivo antes de aplicá-las.
Remova os arquivos de objeto SQL existentes e regenere o projeto:
rm -rf MyDatabaseProject sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SqlProjectExamine as alterações com o Git e confirme:
cd MyDatabaseProject dotnet new gitignore git add . git status git commit -m "Update project from database changes" git push
Etapa 4: (opcional) Obter alterações do repositório Git remoto e aplicá-las ao banco de dados local
Quando outros membros da equipe efetuam push de alterações de esquema de banco de dados para o repositório remoto, você pode efetuar pull dessas alterações e implantá-las no banco de dados de desenvolvimento local.
Selecione Git>Pull na barra de menu para obter as alterações mais recentes do repositório remoto.
Em Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto do banco de dados SQL e selecione Comparação de Esquema.
Na janela Comparação de Esquema , o projeto é definido como a origem. Selecione a lista suspensa Selecionar Destino e escolha Selecionar Destino.
Na caixa de diálogo Selecionar Esquema de Destino, selecione Banco de dados e escolha a conexão com o banco de dados de desenvolvimento local. Selecione OK.
Selecione Comparar para executar a comparação. Os resultados exibem as diferenças entre o projeto (origem) e o banco de dados (destino).
Examine as diferenças para verificar se as alterações são esperadas.
Selecione Atualizar para aplicar as alterações ao banco de dados.
Warning
Este tutorial não está disponível para os projetos no estilo SDK (versão prévia) no Visual Studio 2022. Use o SQL Server Management Studio (SSMS) ou o Visual Studio Code em vez disso.
Abra a exibição Controle de Código-Fonte e selecione Puxar no menu ... (ou use o botão de sincronização na barra de status) para obter as alterações mais recentes do repositório remoto.
Na exibição Projetos de Banco de Dados , clique com o botão direito do mouse no projeto do banco de dados SQL e selecione Comparação de Esquema.
Na janela Comparação de Esquema , o projeto é definido como a origem. Selecione o botão de reticências de destino e escolha sua conexão de banco de dados de desenvolvimento local como destino.
Selecione Comparar para executar a comparação. Os resultados exibem as diferenças entre o projeto (origem) e o banco de dados (destino).
Examine as diferenças para verificar se as alterações são esperadas.
Selecione Aplicar para aplicar as alterações ao banco de dados.
Abra um terminal e execute
git pullno diretório do projeto para efetuar pull das alterações mais recentes do repositório remoto.Em Gerenciador de Soluções, clique com o botão direito do mouse no nó do projeto do banco de dados SQL e selecione Comparação de Esquema (versão prévia).
Na janela Comparação de Esquema , o projeto é definido como a origem. Selecione o destino e escolha sua conexão de banco de dados de desenvolvimento local.
Selecione Comparar para executar a comparação. Os resultados exibem as diferenças entre o projeto (origem) e o banco de dados (destino).
Examine as diferenças para verificar se as alterações são esperadas.
Selecione Aplicar para aplicar as alterações ao banco de dados.
Extraia as alterações mais recentes do repositório remoto:
cd MyDatabaseProject git pullCrie o projeto para verificar se as alterações são compiladas com êxito:
dotnet buildImplante as alterações no banco de dados de desenvolvimento local usando o SqlPackage:
sqlpackage /a:Publish /sf:bin/Debug/MyDatabaseProject.dacpac /tsn:localhost /tdn:MyDatabaseSubstitua
MyDatabaseProject.dacpacpelo nome do arquivo de.dacpacsaída e atualize os valores de servidor de destino (/tsn) e banco de dados (/tdn) conforme necessário.