Đôi khi bạn có thể cần so sánh hai lược đồ trong PostgreSQL. Bạn có thể sử dụng truy vấn SQL để thực hiện điều này hoặc sử dụng một trong nhiều công cụ của bên thứ ba cho phép bạn so sánh hai lược đồ trong PostgreSQL. Trong bài viết này, chúng ta sẽ xem xét cả hai cách để so sánh hai lược đồ trong PostgreSQL.
Cách so sánh hai lược đồ trong PostgreSQL
Chúng ta sẽ xem xét hai cách để so sánh hai lược đồ trong PostgreSQL - sử dụng truy vấn SQL và sử dụng pgAdmin.
So sánh hai lược đồ bằng SQL
Đây là truy vấn SQL để so sánh hai lược đồ. Thay thế schema1 và schema2 bằng tên của hai lược đồ bạn muốn so sánh.
select COALESCE(c1.table_name, c2.table_name) as table_name, COALESCE(c1.column_name, c2.column_name) as table_column, c1.column_name as schema1, c2.column_name as schema2 from (select table_name, column_name from information_schema.columns c where c.table_schema = 'schema1') c1 full join (select table_name, column_name from information_schema.columns c where c.table_schema = 'schema2') c2 on c1.table_name = c2.table_name and c1.column_name = c2.column_name where c1.column_name is null or c2.column_name is null order by table_name, table_column;
Truy vấn trên về cơ bản liệt kê tất cả các hàng có trong một trong hai lược đồ với thông tin về sự hiện diện / vắng mặt của nó trong lược đồ kia.
- tên_bảng - tên của bảng có trong schema1 hoặc schema2
- table_column - tên của cột có trong schema1 hoặc schema2
- schema1 - nếu cột tồn tại trong schema1, tên của nó được hiển thị, nếu không, nó là giá trị rỗng.
- schema2 - nếu cột tồn tại trong schema2, tên của nó được hiển thị, nếu không, nó là giá trị rỗng.
So sánh hai lược đồ trong pgAdmin
Chúng tôi sẽ sử dụng Độ lệch giản đồ tính năng của pgAdmin để so sánh các lược đồ hoặc cơ sở dữ liệu hoặc các đối tượng khác.
Công cụ khác biệt của lược đồ cho phép bạn theo dõi sự khác biệt giữa hai đối tượng cơ sở dữ liệu và liệt kê các câu lệnh SQL khác nhau để đồng bộ hóa cơ sở dữ liệu.
Tuy nhiên, xin lưu ý rằng máy chủ nguồn và máy chủ đích phải có cùng phiên bản máy chủ chính.
Dưới đây là các bước để so sánh hai lược đồ bằng công cụ Schema Diff.
1. Nhấp vào Khác biệt giản đồ tùy chọn, trong Công cụ menu.
2. Bạn sẽ thấy một biểu mẫu mà bạn cần chọn Nguồn và Mục tiêu
3. Chọn phiên bản máy chủ, máy chủ nguồn và máy chủ đích cũng như cơ sở dữ liệu / lược đồ tùy thuộc vào yêu cầu của bạn.
4. Nhấp vào So sánh để so sánh hai cơ sở dữ liệu / lược đồ. Bạn sẽ thấy danh sách chi tiết kết quả so sánh đối tượng, tiếp theo là kết quả so sánh DDL
5. Kết quả so sánh đối tượng được trình bày dưới dạng cây, bạn có thể nhấp vào để mở rộng / thu gọn.
6. Kết quả so sánh DDL được trình bày trong 3 bảng. Trong bảng điều khiển bên trái, bạn sẽ tìm thấy các truy vấn SQL của lược đồ nguồn. Trong bảng điều khiển ở giữa, bạn có các câu lệnh SQL cho lược đồ mục tiêu. Và trong bảng bên phải, bạn sẽ tìm thấy sự khác biệt giữa các câu lệnh SQL của hai lược đồ.
7. Bạn sẽ tìm thấy nhiều tùy chọn để tinh chỉnh kết quả so sánh như Trình soạn thảo truy vấn, Trình tạo tập lệnh và bộ lọc.
pgAdmin Schema diff toàn diện hơn nhiều so với so sánh lược đồ dựa trên SQL và rất được khuyến khích. Hy vọng rằng, bài viết này sẽ giúp bạn so sánh hai lược đồ trong PostgreSQL.
Ubiq giúp dễ dàng trực quan hóa dữ liệu và theo dõi chúng trong trang tổng quan thời gian thực. Dùng thử Ubiq miễn phí.