So sánh và đồng bộ cấu trúc 2 DB với Visual Studio SQL Data Tools

Microsoft Visual Studio SQL Data Tools cung cấp chức năng cho phép bạn so sánh cấu trúc của các bảng, thủ tục, view và các đối tượng khác trong CSDL. Có nhiều khi bạn muốn so sánh sự khác nhau giữa 2 CSDL. Ví dụ so sánh 2 CSDL ở môi trường Development và Production với nhau.

Hãy cùng xem qua một kịch bản sử dụng Schema Comparison. Ta có 2 CSDL gọi là Database1 và Database2 mỗi thằng này có bảng gọi là Customer với cùng số trường:

pic1

Đầu tiên, mở Visual Studio và tạo một project trống. Trong mục ‘Tool’ chọn ‘SQL Server’ và ‘New Schema Comparison’

pic2

Một cửa sổ mới với 2 dropdown menu chọn “Select Source”“Select Target” mở ra. Và chúng ta có thể kết nối đến cả 2 database, 1 cái là nguồn 1 cái là đích để so sánh.

pic3

Chỉ ra các thuộc tính kết nối của database nguồn (Database1) để kết nối tới nó.

pic5

Và cùng các bước như vậy chúng ta kết nối đến CSDL đích (Database2). Giờ bạn có cả 2 cài đặt kết nối đến cả 2 CSDL là nguồn và đích, bạn có thể bắt đầu co sánh bằng cách click vào nút “Compare”. Nếu schema của nó giống hệt nhau nó sẽ hiển thị trắng tinh:

pic6

Giờ để demo sự so sánh khác nhau, hãy tạo một só othay đổi trên Database1 bằng cách thêm một cột mới là ‘Email’ vào bảng Customer:

pic7

Như chúng ta đã làm thì công cụ sẽ thấy được sự khác nhau giữa 2 CSDL và liệt kê chúng ở cửa sổ phía dưới:

pic8

Hiện tại chúng ta có 2 lựa chọn để đồng bộ 2 schema: Có thể generate ra 1 script để đồng bộ sự thay đổi lên CSDL đích hoặc để Visual Studio làm tự động việc cập nhật bằng cách click nút “Update”

pic9

Nó sẽ tự generate ra script:

pic10

Một Script được tạo ra, nó luôn là một cách tốt để xem toàn bộ các lệnh thay đổi trên DB đích trước khi thực thi chúng trên DB đích.

pic11

Và cuối cùng là click vào “Update” để cập nhật thay đổi đến CSDL đích (Database2)

pic12

Schema Compare rất hữu ích trong các trường hợp bạn muốn so sánh nhiều CSDL trong một ứng dụng phức tạp hoặc các máy chủ phân tán ở các nơi khác nhau hoặc là cần đồng bộ những sự khác biệt về cấu trúc khi deploy phiên bản mới.


Trích nguồn từ: (decisivedata.net)

Lên trên