Database
 sql >> Baza danych >  >> RDS >> Database

Wdrażanie bazy danych z kontroli źródła

Obecnie zespoły programistyczne rozpoczynają nowe projekty od wyboru systemu kontroli wersji. Istnieje wiele zalet systemów kontroli źródła w koordynowaniu wysiłków zespołu programistów. Zapewnia pełną ścieżkę audytu wszystkich zmian w kodzie i umożliwia zespołowi odtworzenie dowolnej określonej wersji lub kompilacji. Bazy danych, wraz z kodem programistycznym, mogą i powinny być objęte kontrolą źródeł. W tym artykule przyjrzymy się, jak wdrożyć bazę danych znajdującą się w zdalnym repozytorium.

Załóżmy, że masz zdalne repozytorium, które zawiera folder skryptów bazy danych. Folder zawiera skrypty DDL dla obiektów bazy danych. Zadanie polega na wdrożeniu bazy danych na lokalnym komputerze. W celach demonstracyjnych użyję Visual SVN i Tortoise SVN Repository Browser. Poniższy rysunek przedstawia repozytorium demonstracyjne, w którym znajduje się folder skryptów bazy danych.

Pierwszym krokiem jest utworzenie lokalnej kopii roboczej. Aby to zrobić, musisz utworzyć folder na lokalnym dysku twardym i wykonać operację pobrania SVN.

Po zakończeniu operacji wszystkie pliki SQL zostaną zapisane w folderze lokalnym. Teraz możesz wdrożyć bazę danych. Oczywiście nie jest dobrą praktyką ręczne wykonywanie wszystkich plików SQL jeden po drugim. Aby zautomatyzować wdrażanie, możesz utworzyć plik wsadowy.

Tworzenie pliku Wsadowego

Musisz utworzyć plik wsadowy. W tym demo utworzę plik sales_demo_build.bat z następującą zawartością:

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

Używam narzędzia SQLCMD w pliku wsadowym. Aby uzyskać więcej informacji o argumentach SQLCMD, przeczytaj następujący artykuł:Narzędzie sqlcmd.

Za pomocą SQLCMD możemy wykonać plik sales_demo_build.sql. Pobierze wszystkie pliki SQL z folderu roboczego i zbuduje bazę danych. Plik sales_demo_build.sql zawiera następujący kod:

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

Skrypt zawiera listę plików SQL do wykonania.

:r to polecenie SQLCMD, które analizuje dodatkowe instrukcje Transact-SQL i polecenia sqlcmd z pliku określonego przez do pamięci podręcznej instrukcji.

Teraz możemy uruchomić plik wsadowy:

To jest to! Teraz możemy odświeżyć Eksplorator obiektów SSMS i rozpocząć pracę z bazą danych:

Jak widać, jest to prosty sposób na wdrożenie bazy danych, która jest przechowywana w kontroli źródła. Nie jest to jednak jedyny sposób na rozwiązanie tego zadania. W następnych artykułach omówimy alternatywne podejścia.

Przydatne narzędzie:

dbForge Source Control – potężny dodatek SSMS do zarządzania zmianami bazy danych SQL Server w kontroli źródeł.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błędy, pułapki i najlepsze praktyki T-SQL – przyłącza

  2. Nieoczekiwany efekt uboczny dodania filtrowanego indeksu

  3. Jak sprawdzić, czy T-SQL UDF jest powiązany ze schematem (nawet jeśli jest zaszyfrowany)

  4. Śledzenie zmian w bazie danych za pomocą kontroli źródła folderu roboczego

  5. Ogłaszamy ogólną dostępność SQL Compliance Manager 5.9