Database
 sql >> Base de données >  >> RDS >> Database

Déploiement de la base de données à partir du contrôle de code source

De nos jours, les équipes de développement démarrent de nouveaux projets en choisissant un système de contrôle de version. Les systèmes de contrôle de source présentent de nombreux avantages dans la coordination des efforts de l'équipe de développement. Il garantit une piste d'audit complète de toutes les modifications apportées au code et permet à l'équipe de reproduire toute révision ou construction spécifique. Avec le code de programmation, les bases de données peuvent et doivent être placées sous contrôle de source. Dans cet article, nous verrons comment déployer une base de données qui se trouve dans le référentiel distant.

Supposons que vous disposiez d'un référentiel distant contenant un dossier de script de base de données. Le dossier contient des scripts DDL pour les objets de base de données. La tâche consiste à déployer une base de données sur le PC local. À des fins de démonstration, j'utiliserai Visual SVN et Tortoise SVN Repository Browser. L'image suivante montre le référentiel de démonstration qui héberge le dossier de script de base de données.

La première étape consiste à créer une copie de travail locale. Pour ce faire, vous devez créer un dossier sur le disque dur local et effectuer l'opération de vérification SVN.

Une fois l'opération terminée, tous les fichiers SQL seront stockés dans le dossier local. Maintenant, vous pouvez déployer la base de données. Évidemment, ce n'est pas une bonne pratique d'exécuter manuellement tous les fichiers SQL un par un. Pour automatiser le déploiement, vous pouvez créer un fichier batch.

Création du fichier BATCH

Vous devez créer un fichier batch. Dans cette démo, je vais créer le fichier sales_demo_build.bat avec le contenu suivant :

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

J'utilise l'utilitaire SQLCMD dans le fichier batch. Pour obtenir plus d'informations sur les arguments SQLCMD, lisez l'article suivant :sqlcmd Utility.

Avec l'aide de SQLCMD, nous pouvons exécuter le fichier sales_demo_build.sql. Il prendra tous les fichiers SQL du dossier de travail et construira la base de données. Le fichier sales_demo_build.sql contient le code suivant :

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

Le script contient une liste de fichiers SQL à exécuter.

:r est une commande SQLCMD qui analyse des instructions Transact-SQL et des commandes sqlcmd supplémentaires du fichier spécifié par dans le cache d'instructions.

Maintenant, nous pouvons exécuter le fichier batch :

C'est ça! Maintenant, nous pouvons actualiser l'explorateur d'objets SSMS et commencer à travailler avec la base de données :

Comme vous pouvez le constater, il s'agit d'un moyen simple de déployer une base de données stockée dans le contrôle de code source. Cependant, ce n'est pas le seul moyen de résoudre cette tâche. Nous parlerons des approches alternatives dans les prochains articles.

Outil utile :

dbForge Source Control - puissant complément SSMS pour gérer les modifications de la base de données SQL Server dans le contrôle de source.