Database
 sql >> Base de Dados >  >> RDS >> Database

Implantando o banco de dados do controle de origem


Atualmente, as equipes de desenvolvimento iniciam novos projetos a partir da escolha de um sistema de controle de versão. Há muitos benefícios dos sistemas de controle de origem na coordenação dos esforços da equipe de desenvolvimento. Ele garante uma trilha de auditoria completa de todas as alterações no código e permite que a equipe reproduza qualquer revisão ou compilação específica. Junto com o código de programação, os bancos de dados podem e devem ser colocados sob controle de origem. Neste artigo, veremos como implantar um banco de dados que está no repositório remoto.

Suponha que você tenha um repositório remoto que contém uma pasta de script de banco de dados. A pasta contém scripts DDL para objetos de banco de dados. A tarefa é implantar um banco de dados no PC local. Para fins de demonstração, usarei o Visual SVN e o Tortoise SVN Repository Browser. A imagem a seguir demonstra o repositório de demonstração que hospeda a pasta de script do banco de dados.



O primeiro passo é criar uma cópia de trabalho local. Para fazer isso, você precisa criar uma pasta no disco rígido local e realizar a operação de checkout do SVN.



Assim que a operação for concluída, todos os arquivos SQL serão armazenados na pasta local. Agora, você pode implantar o banco de dados. Obviamente, não é uma boa prática executar manualmente todos os arquivos SQL um por um. Para automatizar a implantação, você pode criar um arquivo em lote.

Criando arquivo LOTE


Você precisa criar um arquivo em lotes. Nesta demonstração, criarei o arquivo sales_demo_build.bat com o seguinte conteúdo:
sqlcmd -S "PC_NAME\SQLEXPRESS" -U "sa" -P "sa" -i "D:\sales_demo_build\sales_demo_build.sql" PAUSE

Eu uso o utilitário SQLCMD no arquivo de lote. Para obter mais informações sobre argumentos SQLCMD, leia o seguinte artigo:Utilitário sqlcmd.

Com a ajuda do SQLCMD, podemos executar o arquivo sales_demo_build.sql. Ele pegará todos os arquivos SQL da pasta de trabalho e construirá o banco de dados. O arquivo sales_demo_build.sql contém o seguinte código:
SET NOCOUNT ON
GO
 
PRINT 'Creating sales_demo1 database'
 
USE [master]
GO
DECLARE @db_name NVARCHAR(255);
SET @db_name = N'sales_demo1';
IF EXISTS (SELECT 1 FROM sys.databases d WHERE d.name = @db_name)
BEGIN
  EXEC (N'ALTER DATABASE '[email protected]_name+N' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');
  EXEC (N'DROP DATABASE '[email protected]_name);
END;
EXEC (N'CREATE DATABASE '[email protected]_name);
GO
 
USE sales_demo1
GO
 
:On Error exit
 
:r "D:\sales_demo1\Tables\dbo.Customers.sql"
:r "D:\sales_demo1\Tables\dbo.OrderLines.sql"
:r "D:\sales_demo1\Tables\dbo.Orders.sql"
:r "D:\sales_demo1\Tables\dbo.Products.sql"
 
:r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.OrderLines.FK.sql"
:r "D:\sales_demo1\Tables\Constraints\Foreign Keys\dbo.Orders.FK.sql"
 
PRINT 'Creation is Completed'
GO

O script contém uma lista de arquivos SQL a serem executados.

:r é um comando SQLCMD que analisa instruções Transact-SQL adicionais e comandos sqlcmd do arquivo especificado por no cache de instruções.

Agora, podemos executar o arquivo de lote:



É isso! Agora, podemos atualizar o SSMS Object Explorer e começar a trabalhar com o banco de dados:



Como você pode ver, é uma maneira simples de implantar um banco de dados armazenado no controle do código-fonte. No entanto, não é a única maneira de resolver essa tarefa. Falaremos sobre abordagens alternativas nos próximos artigos.


Ferramenta útil:


dbForge Source Control – poderoso suplemento de SSMS para gerenciar alterações no banco de dados do SQL Server no controle de origem.