sql >> Base de Datos >  >> RDS >> Database

Implementación de la base de datos desde el control de código fuente

En estos días, los equipos de desarrollo inician nuevos proyectos a partir de la elección de un sistema de control de versiones. Hay muchos beneficios de los sistemas de control de fuente en la coordinación de los esfuerzos del equipo de desarrollo. Garantiza un seguimiento de auditoría completo de todos los cambios en el código y permite al equipo reproducir cualquier revisión o compilación específica. Junto con el código de programación, las bases de datos pueden y deben colocarse bajo control de fuente. En este artículo, veremos cómo implementar una base de datos que se encuentra en el repositorio remoto.

Suponga que tiene un repositorio remoto que contiene una carpeta de secuencias de comandos de base de datos. La carpeta contiene scripts DDL para objetos de base de datos. La tarea es implementar una base de datos en la PC local. Para fines de demostración, usaré Visual SVN y Tortoise SVN Repository Browser. La siguiente imagen muestra el repositorio de demostración que aloja la carpeta de secuencias de comandos de la base de datos.

El primer paso es crear una copia de trabajo local. Para hacerlo, debe crear una carpeta en el disco duro local y realizar la operación de pago de SVN.

Una vez completada la operación, todos los archivos SQL se almacenarán en la carpeta local. Ahora, puede implementar la base de datos. Obviamente, no es una buena práctica ejecutar manualmente todos los archivos SQL uno por uno. Para automatizar la implementación, puede crear un archivo por lotes.

Creando archivo BATCH

Necesita crear un archivo por lotes. En esta demostración, crearé el archivo sales_demo_build.bat con el siguiente contenido:

sqlcmd -S "PC_NAME\SQLEXPRESS" -U "sa" -P "sa" -i "D:\sales_demo_build\sales_demo_build.sql" PAUSE

Uso la utilidad SQLCMD en el archivo por lotes. Para obtener más información sobre los argumentos de SQLCMD, lea el siguiente artículo:Utilidad sqlcmd.

Con la ayuda de SQLCMD, podemos ejecutar el archivo sales_demo_build.sql. Tomará todos los archivos SQL de la carpeta de trabajo y construirá la base de datos. El archivo sales_demo_build.sql contiene el siguiente 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

El script contiene una lista de archivos SQL para ejecutar.

:r es un comando SQLCMD que analiza instrucciones Transact-SQL adicionales y comandos sqlcmd del archivo especificado por en la caché de instrucciones.

Ahora, podemos ejecutar el archivo por lotes:

¡Eso es! Ahora, podemos actualizar el Explorador de objetos de SSMS y comenzar a trabajar con la base de datos:

Como puede ver, es una forma simple de implementar una base de datos que se almacena en el control de código fuente. Sin embargo, no es la única manera de resolver esta tarea. Hablaremos de enfoques alternativos en los próximos artículos.

Herramienta útil:

dbForge Source Control:potente complemento de SSMS para administrar los cambios de la base de datos de SQL Server en el control de fuente.