Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Triển khai Cơ sở dữ liệu từ Kiểm soát Nguồn

Ngày nay, các nhóm phát triển bắt đầu các dự án mới từ việc chọn hệ thống kiểm soát phiên bản. Có rất nhiều lợi ích của hệ thống kiểm soát nguồn trong việc điều phối các nỗ lực của nhóm phát triển. Nó đảm bảo một quá trình kiểm tra hoàn chỉnh về tất cả các thay đổi đối với mã và cho phép nhóm tái tạo bất kỳ bản sửa đổi hoặc bản dựng cụ thể nào. Cùng với mã lập trình, cơ sở dữ liệu có thể và nên được đặt dưới sự kiểm soát của nguồn. Trong bài viết này, chúng ta sẽ xem xét cách triển khai cơ sở dữ liệu trong kho lưu trữ từ xa.

Giả sử rằng bạn có một kho lưu trữ từ xa có chứa một thư mục tập lệnh cơ sở dữ liệu. Thư mục chứa các tập lệnh DDL cho các đối tượng cơ sở dữ liệu. Nhiệm vụ là triển khai cơ sở dữ liệu trên PC cục bộ. Với mục đích trình diễn, tôi sẽ sử dụng Visual SVN và Tortoise SVN Repository Browser. Hình ảnh sau đây minh họa kho demo lưu trữ thư mục tập lệnh cơ sở dữ liệu.

Bước đầu tiên là tạo một bản sao làm việc cục bộ. Để làm như vậy, bạn cần tạo một thư mục trên ổ cứng cục bộ và thực hiện thao tác kiểm tra SVN.

Sau khi hoàn thành thao tác, tất cả các tệp SQL sẽ được lưu trữ trong thư mục cục bộ. Bây giờ, bạn có thể triển khai cơ sở dữ liệu. Rõ ràng, việc thực thi từng tệp SQL theo cách thủ công không phải là một phương pháp hay. Để tự động hóa việc triển khai, bạn có thể tạo một tệp hàng loạt.

Tạo tệp BATCH

Bạn cần tạo một tệp hàng loạt. Trong bản demo này, tôi sẽ tạo tệp sales_demo_build.bat với nội dung sau:

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

Tôi sử dụng tiện ích SQLCMD trong tệp hàng loạt. Để biết thêm thông tin về các đối số SQLCMD, hãy đọc bài viết sau:sqlcmd Utility.

Với sự trợ giúp của SQLCMD, chúng ta có thể thực thi tệp sales_demo_build.sql. Nó sẽ lấy tất cả các tệp SQL từ thư mục làm việc và xây dựng cơ sở dữ liệu. Tệp sales_demo_build.sql chứa mã sau:

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

Tập lệnh chứa danh sách các tệp SQL sẽ được thực thi.

:r là lệnh SQLCMD phân tích cú pháp các câu lệnh Transact-SQL bổ sung và các lệnh sqlcmd từ tệp được chỉ định bởi vào bộ nhớ cache của câu lệnh.

Bây giờ, chúng ta có thể chạy tệp loạt:

Đó là nó! Bây giờ, chúng ta có thể làm mới Trình khám phá đối tượng SSMS và bắt đầu làm việc với cơ sở dữ liệu:

Như bạn có thể thấy, đó là một cách đơn giản để triển khai một cơ sở dữ liệu được lưu trữ trong điều khiển nguồn. Tuy nhiên, nó không phải là cách duy nhất để giải quyết công việc này. Chúng ta sẽ nói về các cách tiếp cận thay thế trong các bài viết tiếp theo.

Công cụ hữu ích:

dbForge Source Control - phần bổ trợ SSMS mạnh mẽ để quản lý các thay đổi trong cơ sở dữ liệu SQL Server trong kiểm soát nguồn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vui vẻ với nén (columnstore) trên một bảng rất lớn - phần 1

  2. Khớp Cung với Cầu - Giải pháp, Phần 2

  3. Kết nối với Vertica trong IRI Workbench

  4. Tạo bảng mới trong IRI Workbench

  5. Kiểm tra Lớp ODBC