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

Theo dõi thay đổi cơ sở dữ liệu bằng cách sử dụng kiểm soát nguồn thư mục làm việc

Bài viết này nói về một phương pháp mới để kiểm soát phiên bản cơ sở dữ liệu bằng cách sử dụng một thư mục đang làm việc để các thay đổi lịch sử đã thực hiện đối với cơ sở dữ liệu có thể được truy tìm lại.

Tổng quan

Vì bài viết này dựa trên cách tiếp cận mới để kiểm soát nguồn cơ sở dữ liệu bằng cách khắc phục hạn chế về thư mục làm việc, tốt hơn hết bạn nên hiểu một số kiến ​​thức cơ bản về thư mục làm việc và những thứ liên quan.

Bối cảnh

Thư mục làm việc, khi được sử dụng như một điều khiển nguồn, có một hạn chế là nó không thể giữ lịch sử thay đổi cơ sở dữ liệu. Nhưng trong bài viết này, chúng ta sẽ tập trung vào phương pháp sử dụng điều khiển nguồn thứ cấp (phía sau) với một thư mục làm việc có thể khắc phục được hạn chế.

Điều kiện tiên quyết

Bài viết này giả định rằng người đọc đã quen thuộc với những kiến ​​thức cơ bản về kiểm soát phiên bản cơ sở dữ liệu bằng cách sử dụng Thư mục làm việc và Git cùng với sự hiểu biết về Dịch vụ Nhóm Visual Studio (VSTS) hiện được gọi là Azure DevOps.

Bạn nên sử dụng các bộ công cụ sau để chạy qua tất cả các bước được đề cập trong bài viết này:

  1. dbForge dành cho SQL Server
  2. dbForge Source Control
  3. Git dành cho Windows (hoặc bất kỳ ứng dụng Git nào)
  4. Azure DevOps (trước đây là VSTS)

Bài viết này cũng giả sử bạn đã đăng ký với Azure DevOps và đã có tài khoản hoặc bạn có thể đăng ký và tạo tài khoản mới ngay bây giờ nếu bạn muốn làm theo tất cả các bước trong bài viết này.

Ngoài ra, bất kỳ điều khiển nguồn nào cung cấp tùy chọn Thư mục làm việc đều có thể được sử dụng với SSMS (SQL Server Management Studio) miễn là bạn có các kỹ năng cần thiết để thực hiện cách tiếp cận khái niệm từ bài viết này và đưa nó vào hoạt động.

Tham khảo

Để hiểu cơ bản về cách sử dụng thư mục làm việc cho cơ sở dữ liệu điều khiển nguồn, vui lòng xem qua bài viết trước của tôi bằng cách nhấp vào liên kết bên dưới:

Sử dụng Thư mục làm việc để Cơ sở dữ liệu Kiểm soát Nguồn trong các Bước Đơn giản

Giới hạn thư mục làm việc

Đầu tiên chúng ta phải hiểu hạn chế của việc sử dụng Thư mục làm việc để kiểm soát nguồn cơ sở dữ liệu. Nếu bạn đã đọc bài viết trước của tôi, bạn đã biết hạn chế.

Tình huống thư mục làm việc

Nếu chúng ta quan sát kỹ các bước sau, chúng ta có thể dễ dàng hiểu tùy chọn điều khiển nguồn Thư mục làm việc bị giới hạn như thế nào khi nói đến việc lập phiên bản cơ sở dữ liệu:

  1. Dev1 tạo cơ sở dữ liệu mới về đồng hồ đeo tay và gọi nó là Đồng hồ theo yêu cầu.
  2. Dev1 tạo thêm một bảng mới và gọi nó là Watch với WatchId WatchName các cột theo yêu cầu.
  3. Dev1 chưa được yêu cầu sử dụng bất kỳ điều khiển nguồn cụ thể nào và bản thân dự án đang trong giai đoạn thử nghiệm phát triển nên anh ấy quyết định sử dụng điều khiển nguồn Thư mục làm việc.
  4. Dev2 đã được yêu cầu tạo một bảng mới DigitalWatch với DigitalWatchId để anh ấy xóa Xem bảng nghĩ rằng với DigitalWatch bảng Xem bảng không cần thiết nữa.
  5. Không có cách nào để hoàn nguyên các thay đổi do Dev2 thực hiện và tạo Xem một lần nữa sử dụng điều khiển nguồn thư mục làm việc vì thư mục làm việc vừa có phiên bản mới nhất của mã cơ sở dữ liệu.

Điều này được minh họa như sau:

Sử dụng Thư mục Làm việc để Theo dõi Thay đổi Cơ sở dữ liệu

Có một cách để thực thi Thư mục làm việc để theo dõi các thay đổi cơ sở dữ liệu có thể giúp chúng tôi khôi phục các đối tượng cơ sở dữ liệu bị mất, mặc dù việc sử dụng Thư mục làm việc theo mặc định không duy trì lịch sử thay đổi cơ sở dữ liệu.

Sử dụng Kiểm soát Nguồn Thứ cấp (Git)

Điều này có thể đạt được bằng cách sử dụng Điều khiển nguồn thứ cấp song song với việc sử dụng tùy chọn Thư mục làm việc hơi phức tạp để quản lý nhưng hoạt động tốt.

Chúng tôi sẽ sử dụng Git làm Điều khiển nguồn phụ với Thư mục làm việc trong bài viết này.

Git là một hệ thống kiểm soát phiên bản phân tán và cũng là một trong những điều khiển nguồn được sử dụng phổ biến nhất hiện nay.

Tại sao Git với Thư mục Làm việc?

Người ta sẽ tranh luận tại sao chúng ta cần sử dụng Git song song với Thư mục làm việc khi chúng ta có thể trực tiếp sử dụng Git với dbForge Studio cho SQL Server để kiểm soát phiên bản cơ sở dữ liệu của chúng ta.

Câu trả lời là hiểu bản chất linh hoạt của tùy chọn Kiểm soát nguồn thư mục làm việc cùng với việc khám phá tiềm năng tiếp tục với Thư mục làm việc thay vì chỉ sử dụng nó như một giải pháp tạm thời.

Tải xuống bất kỳ ứng dụng khách kiểm soát nguồn Git nào hoặc Git cho Windows

Trước khi chúng tôi tiến hành thêm bất kỳ bước nào, vui lòng cài đặt bất kỳ ứng dụng Git Source Control nào mà bạn chọn sẽ giúp chúng tôi lưu các thay đổi cơ sở dữ liệu theo thời gian.

Hướng dẫn bài viết này đang sử dụng ứng dụng khách Git cho Windows.

Cài đặt Git cho Windows với các tùy chọn bạn chọn, chúng tôi đã sử dụng các tùy chọn mặc định để cài đặt Git cho Windows.

Tạo dự án Azure DevOps bằng Git

Đăng nhập vào tài khoản Azure DevOps của bạn và tạo một dự án mới SQLBookShopV3-using-Working-Folder-with-Git và chọn Git Tùy chọn Kiểm soát nguồn để tạo một kho lưu trữ riêng như sau.

Đi tới Repos trên thanh điều hướng bên trái và sao chép liên kết Kho lưu trữ (Git repository) bằng cách nhấp vào biểu tượng khay nhớ tạm bên cạnh liên kết.

Kế hoạch là tạo kho lưu trữ cục bộ dựa trên liên kết Git Repo và sau đó trao quyền cho Thư mục làm việc thông qua việc này.

Tạo thư mục làm việc trong Git Local Repos

Nếu bạn đã có thư mục Git Local Repos, thì hãy tạo thư mục làm việc của bạn SQLBookShopV3-Working-Folder-with-Git ở đó:

C:\ Users \ \ Source \ Repos \ SQLBookShopV3-Working-Folder-with-Git

Ngoài ra, hãy tạo Repos thư mục bất kỳ nơi nào bạn chọn và sau đó tạo thư mục con SQLBookShopV3-Working-Folder-with-Git.

Tạo kho lưu trữ cục bộ Git mới

Bây giờ chúng ta sẽ tạo một kho lưu trữ Git cục bộ để thư mục làm việc có thể vừa với nó.

Mở Git GUI cái này sẽ xuất hiện sau Git cho Windows cài đặt.

Tạo kho lưu trữ cục bộ bằng cách chọn Tạo kho lưu trữ mới tùy chọn.

Tạo Git Local Repo (Kho lưu trữ).

Kho lưu trữ Git cục bộ đã được tạo thành công.

Liên kết Repo Git từ xa với Repo cục bộ

Tạo Git Local Repository là chưa đủ, chúng tôi đã liên kết nó với Git Remote Repository được tạo thông qua Azure DevOps.

Liên kết Repo Git từ xa với Git Local Repo bằng cách chọn Điều khiển từ xa từ trình đơn chính, sau đó nhấp vào Thêm điều khiển từ xa mới và sau đó nhập vị trí Dự án Azure DevOps của bạn.

Tạo cơ sở dữ liệu SQLBookShopV3

Mở dbForge Studio cho SQL Server và tạo cơ sở dữ liệu mới SQLBookShopV3 .

Tạo Bảng Sách

Tạo Sách bảng với các cột BookId, Title và Author như sau.

CREATE TABLE SQLBookShopV3.dbo.Book (
  BookId INT IDENTITY
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
 ,Title VARCHAR(100)
 ,Author VARCHAR(50)
)
GO

Cơ sở dữ liệu liên kết với Kiểm soát nguồn thư mục đang làm việc

Trong bước tiếp theo, chúng tôi sẽ liên kết cơ sở dữ liệu với Kiểm soát nguồn thư mục làm việc.

Nhấp chuột phải vào cơ sở dữ liệu (SQLBookShopV3) và chọn Kiểm soát nguồn , rồi đến Liên kết cơ sở dữ liệu với Kiểm soát nguồn .

Tiếp theo, xác định vị trí thư mục làm việc đã tạo trước đó để liên kết nó với cơ sở dữ liệu.

Cam kết thay đổi đối với thư mục đang làm việc

Đi tới Trình quản lý kiểm soát nguồn và kiểm tra ( Cam kết ) Sách mới được tạo vào điều khiển nguồn Thư mục làm việc.

Kiểm tra Thư mục Làm việc để xem Sách bàn ở đó.

Đẩy các thay đổi đối với Kiểm soát nguồn Git (Bảng sách)

Mở Git GUI một lần nữa và nhấp vào Quét lại nút sẽ hiển thị đối tượng bảng ngay bây giờ, hãy thêm các cam kết ban đầu sau:

Cam kết ban đầu (bảng Sách được tạo lần đầu tiên)

Sau đó thực hiện các bước sau:

  1. Thay đổi giai đoạn
  2. Cam kết các thay đổi
  3. Đẩy (Thay đổi)

Ngoài ra, bạn có thể sử dụng Git Bash để chạy Git từ dòng lệnh.

Xem các thay đổi được cam kết để kiểm soát nguồn Git

Điều hướng đến Azure DevOps trang web, miễn là bạn đã đăng nhập và dự án SQLBookShopV3-Sử dụng-Làm việc-Thư mục-với-Git đang hoạt động.

Nhấp vào Repos trên thanh điều hướng bên trái để xem các thay đổi vừa được cam kết với Kiểm soát nguồn Git.

Tiếp theo, hãy kiểm tra tập lệnh bảng.

Thêm cổ phiếu và cột giá

Bây giờ, hãy thêm hai cột khác Cổ phiếu Giá vào Sách bảng bằng cách sử dụng tập lệnh sau.

CREATE TABLE SQLBookShopV3.dbo.Book (
  BookId INT IDENTITY
 ,Title VARCHAR(100) NULL
 ,Author VARCHAR(50) NULL
 ,Price DECIMAL(8, 2) NULL
 ,Stock SMALLINT NULL
 ,CONSTRAINT PK_Book_BookId PRIMARY KEY CLUSTERED (BookId)
) ON [PRIMARY]
GO

Bảng sẽ giống như dưới đây.

Cam kết thay đổi đối với thư mục đang làm việc

Lưu định nghĩa gần đây nhất của bảng Sách hiện chứa hai cột bổ sung vào Kiểm soát Nguồn Thư mục Làm việc như được hiển thị bên dưới.

Định vị Thư mục Làm việc bằng Windows Explorer và mở dbo.table.sql trong notepad để xem mã.

Thư mục Làm việc chứa định nghĩa mới nhất của bảng và không cung cấp bất kỳ thông tin nào về hình dạng đầu tiên của bảng.

Như đã thảo luận, đây là hạn chế của Thư mục làm việc mà chúng ta chỉ có thể thấy phiên bản mới nhất của cơ sở dữ liệu bị các phiên bản mới hơn ghi đè, do đó không còn chỗ để theo dõi lịch sử (thay đổi cơ sở dữ liệu).

Đẩy các thay đổi sang Kiểm soát nguồn Git (Cột giá và cổ phiếu)

Trong bước tiếp theo, chúng tôi sẽ đẩy các cột mới được thêm vào của bảng vào Kho lưu trữ từ xa Git như được hiển thị bên dưới.

Thay đổi cơ sở dữ liệu theo dõi với Kiểm soát nguồn Git

Cho đến nay, chúng tôi đã thực hiện hai thay đổi cơ sở dữ liệu chính theo thứ tự sau:

  1. Sách bảng đã được tạo với các cột BookId, Title và Author
  2. Các cột Giá và Cổ phiếu đã được thêm vào Sách bảng

Không có cách nào để xem thay đổi đầu tiên khi еру Bảng Sách ban đầu được tạo bằng Thư mục Làm việc.

Tuy nhiên, có thể xem tất cả lịch sử thay đổi cơ sở dữ liệu bằng Git miễn là chúng tôi đã đẩy những thay đổi đó vào Git Remote Repository.

Trên Azure DevOps, vui lòng nhấp vào Đẩy trên thanh điều hướng bên trái để xem các thay đổi lịch sử của cơ sở dữ liệu.

Điều hướng đến Cam kết để xem thứ tự thay đổi cơ sở dữ liệu dưới dạng cam kết.

Nhấp vào Cam kết đầu tiên a99df4b5 để xem định nghĩa đầu tiên về Sách bảng.

Quay lại và nhấp vào cam kết tiếp theo 6f863f0a để xem (các) thay đổi cơ sở dữ liệu tiếp theo.

Xin chúc mừng! Chúng tôi đã theo dõi thành công các thay đổi cơ sở dữ liệu bằng Thư mục làm việc với Điều khiển nguồn phụ (Git).

Bây giờ chúng ta có thể hoàn nguyên về phiên bản đầu tiên của bảng nếu muốn hoặc tiếp tục thêm nhiều đối tượng cơ sở dữ liệu hơn.

Việc cần làm

Giờ đây, bạn có thể thoải mái không chỉ đặt các đối tượng cơ sở dữ liệu của mình dưới quyền kiểm soát nguồn Thư mục làm việc mà còn theo dõi tất cả các thay đổi cơ sở dữ liệu ở đó bằng cách duy trì lịch sử cơ sở dữ liệu.

  1. Vui lòng thử tạo một cơ sở dữ liệu khác bằng cách liên kết Sách bảng với BookType bảng sao cho BookTypeId khóa chính của BookType bảng được chuyển dưới dạng BookTypeId cột khóa ngoại trong Sách bảng và sử dụng điều khiển nguồn thư mục làm việc để theo dõi các thay đổi của cơ sở dữ liệu.
  2. Vui lòng thử tạo Đồng hồ cơ sở dữ liệu như được thấy trong sơ đồ đầu tiên của bài viết và làm theo các bước bằng cách duy trì lịch sử thay đổi cơ sở dữ liệu bằng Thư mục làm việc với Git
  3. Vui lòng cố gắng hoàn nguyên các thay đổi được đề cập trong sơ đồ đầu tiên của bài viết khi Dev2 vô tình xóa Watch bảng do Dev1 tạo bằng Thư mục làm việc để theo dõi các thay đổi của cơ sở dữ liệu.

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. Kiểm tra ràng buộc trong SQL

  2. Cách cài đặt InfluxDB trên Ubuntu 20.10

  3. CTE có thể hỗ trợ như thế nào trong việc viết các truy vấn phức tạp, mạnh mẽ:Quan điểm về hiệu suất

  4. SỬ DỤNG HINT và DISABLE_OPTIMIZED_NESTED_LOOP

  5. Cách kết nối cơ sở dữ liệu với Amazon VPC