- Tiện ích mở rộng này đơn giản hóa việc viết truy vấn và quản lý cơ sở dữ liệu bằng IntelliSense dựa trên AI và tác nhân GitHub Copilot ‘@pgsql’
- Hỗ trợ bảo mật tích hợp và quản lý triển khai đám mây thông qua xác thực Entra ID, tích hợp với Azure Database for PostgreSQL
- Tập trung nâng cao năng suất và hiệu quả của nhà phát triển với trực quan hóa schema, quản lý lịch sử truy vấn và IntelliSense theo ngữ cảnh
- Giảm thiểu chi phí onboarding và chuyển đổi công việc bằng nhiều kết nối cơ sở dữ liệu, xác thực không mật khẩu và giao diện người dùng trực quan
Giới thiệu
- Microsoft đã công bố bản xem trước công khai của tiện ích mở rộng PostgreSQL mới cho Visual Studio Code (VS Code)
- Tiện ích này được thiết kế để xử lý dễ dàng quản lý cơ sở dữ liệu PostgreSQL và quy trình làm việc của nhà phát triển trong một môi trường duy nhất
- Nhà phát triển có thể quản lý đối tượng cơ sở dữ liệu, phác thảo truy vấn, nhận IntelliSense theo ngữ cảnh và dùng tác nhân GitHub Copilot ‘@pgsql’ mà không cần rời khỏi VS Code.
Những khó khăn nhà phát triển gặp phải và cách giải quyết
- Theo Khảo sát nhà phát triển StackOverflow 2024, 41% nhà phát triển gặp khó khăn khi chuyển đổi giữa các tác vụ
- Báo cáo Stripe Developer Coefficient Report 2024 cho thấy tối đa 50% thời gian phát triển được dùng cho gỡ lỗi và xử lý sự cố
- Việc thiếu công cụ mở rộng tích hợp giữa quản lý cơ sở dữ liệu và phát triển ứng dụng làm gia tăng sự kém hiệu quả
- Tiện ích mới tích hợp công cụ cơ sở dữ liệu Postgres và @pgsql GitHub Copilot để xử lý phát triển, quản trị và gỡ lỗi trong một môi trường duy nhất
- Hỗ trợ bảo mật và quản lý tập trung nhờ xác thực Entra ID và tích hợp chặt chẽ với Azure Database for PostgreSQL
Các tính năng chính
Trực quan hóa schema
- Trong Object Explorer, khi nhấp chuột phải vào một mục cơ sở dữ liệu, có thể trực quan hóa schema qua tùy chọn 'Visualize Schema'
GitHub Copilot nhận biết cơ sở dữ liệu
- Cung cấp hỗ trợ AI nhận biết ngữ cảnh PostgreSQL ngay trong VS Code
- Đơn giản hóa việc truy vấn cơ sở dữ liệu bằng ngôn ngữ tự nhiên, tối ưu hóa schema và thực thi SQL
- Hỗ trợ phân tích/tối ưu truy vấn bằng AI qua lệnh “@pgsql”, cùng các menu ngữ cảnh như “Rewrite Query”, “Explain Query”, “Analyze Query Performance”
- Cung cấp hướng dẫn thời gian thực ở mức chuyên gia cùng các tính năng cải thiện bảo mật và hiệu năng trong quá trình phát triển
Chế độ tác nhân trò chuyện Copilot
- Tác nhân chat thông minh dựa trên hội thoại (@pgsql) hỗ trợ vượt ra ngoài hỏi đáp, bao gồm cả các tác vụ nhiều bước
- Hiểu ngữ cảnh thực tế của workspace và có thể viết mã cũng như gỡ lỗi khi được cấp quyền
- Có thể ra lệnh bằng ngôn ngữ tự nhiên cho các tác vụ phức tạp như tạo cơ sở dữ liệu, kích hoạt extension
- Các thao tác thay đổi cơ sở dữ liệu yêu cầu sự cho phép rõ ràng từ người dùng
Kết nối và quản lý cơ sở dữ liệu
- Dễ dàng kết nối với các instance PostgreSQL cục bộ và trên đám mây
- Hỗ trợ nhiều hồ sơ kết nối, phân tích chuỗi kết nối và đơn giản hóa việc thiết lập thông tin kết nối
- Có thể trực tiếp duyệt và lọc các deployment Azure Database for PostgreSQL
- Tích hợp Entra ID giúp tăng cường bảo mật và quản lý quyền truy cập cơ sở dữ liệu theo hướng quản trị tập trung
Xác thực không mật khẩu và bảo mật
- Cung cấp xác thực không mật khẩu bằng Entra ID
- Không cần đăng nhập thủ công, hỗ trợ tự động làm mới token
- Giảm thiểu timeout xác thực, đảm bảo tính liên tục trong quá trình phát triển
- Tương thích với tiêu chuẩn bảo mật doanh nghiệp
- Có thể dùng thông tin xác thực Entra ID hiện có
- Không cần quản lý tài khoản riêng biệt
Database Explorer và lịch sử truy vấn
- Có thể xem và quản lý có cấu trúc các đối tượng cơ sở dữ liệu như schema, bảng, hàm
- Hỗ trợ tạo, sửa và xóa đối tượng
- Quản lý lịch sử truy vấn giúp dễ dàng tái sử dụng các truy vấn đã chạy trước đó
Chỉnh sửa truy vấn và IntelliSense theo ngữ cảnh
- Hỗ trợ tự động hoàn thành từ khóa SQL, tên bảng, tên hàm và tô sáng cú pháp
- Cung cấp tự động định dạng truy vấn, quản lý lịch sử và môi trường biên tập dễ đọc
Điểm khác biệt và thế mạnh
- Nâng cao năng suất: rút ngắn thời gian làm việc và giảm lỗi nhờ IntelliSense theo ngữ cảnh, định dạng SQL, v.v.
- Hỗ trợ AI thông minh: tác nhân chat Copilot nhận biết cơ sở dữ liệu/workspace hỗ trợ các tác vụ nhiều bước
- Onboarding nhanh: nhờ trình quản lý kết nối, cả người mới cũng có thể thiết lập môi trường trong vài phút
- Bảo mật: kiểm soát truy cập tập trung thông qua Entra ID, dễ dàng duyệt các deployment Azure
- Bộ công cụ tích hợp: quản lý đối tượng cơ sở dữ liệu, thực thi truy vấn, triển khai instance đều có thể thực hiện trong VS Code
- Thân thiện với đám mây: tích hợp sâu với Azure Database for PostgreSQL giúp đơn giản hóa vận hành cơ sở dữ liệu trên đám mây
Cách bắt đầu
- Trong Extensions Marketplace của VS Code, tìm 'PostgreSQL' rồi cài Preview PostgreSQL extension (biểu tượng voi màu xanh)
- Cần có tiện ích GitHub Copilot và Copilot chat, và có thể tương tác với Copilot bằng lệnh "@pgsql"
Phản hồi và kế hoạch sắp tới
- Có thể gửi ý kiến người dùng và issue qua công cụ phản hồi trong VS Code
- Giấy phép preview tiêu chuẩn sẽ được cập nhật trong tương lai
- Thông tin chi tiết và hướng dẫn bắt đầu có tại https://aka.ms/pg-vscode-docs
1 bình luận
Ý kiến trên Hacker News
Xin chúc mừng đội ngũ của chúng tôi ra mắt sản phẩm này. Tuần trước tôi đã có dịp là người đầu tiên trình diễn trực tiếp nó tại một phiên do Microsoft tài trợ. Có thể xem video bản demo tại đây. Tôi cũng đã có một phiên riêng tại gian hàng MSFT, nhưng bản ghi hình vẫn chưa được tải lên. Thay vào đó, xin chia sẻ repo ở đây để mọi người có thể tự mình làm theo tất cả các tính năng tôi đã demo. Nếu gặp vấn đề, hãy báo cho nhóm tại đây
Công cụ này lại giải quyết đúng một vấn đề lớn mà trước đây tôi từng xử lý bằng chính gói npm tự viết của mình là “pgstrap”. Công cụ này tạo cấu trúc cơ sở dữ liệu dưới dạng thư mục để LLM có thể tận dụng schema database của tôi, đồng thời giúp nhìn rõ các thay đổi bảng khi review code. Nó tạo file SQL cho từng bảng trong DB của tôi và sắp xếp chúng thành thư mục theo từng schema. Khá giống với
schema.rbcủa Rails. Tôi đang phân vân liệu tốt hơn là để editor hiểu database, hay commit ngữ cảnh đó vào codebase. Nếu bớt được mã/artefact sinh ra thì codebase sẽ gọn hơn. Nhưng thực tế là không phải ai cũng dùng VS Code, và cũng không phải ai cũng biết cách tận dụng tích hợp này. GUI trình duyệt DB thì trước giờ chưa từng có kẻ thắng tuyệt đối trên thị trường. Tuy vậy, với thị phần áp đảo của VS Code, nó có thể trở thành tiêu chuẩn để duyệt DB ngay trong môi trường phát triển. Liên kết pgstrapẤn tượng đầu tiên là công cụ này trông rất tuyệt. Tôi khá ngạc nhiên khi Microsoft lại đầu tư mạnh cho công cụ dành cho Postgres thay vì SQL Server. Có lẽ nhu cầu với Postgres lớn đến mức đó
Tôi nhất định sẽ thử extension này. Sự nghiệp của tôi bắt đầu với SQL Server và SSMS thực sự rất hợp với tôi. Tôi đã dùng Postgres gần 10 năm, nhưng chưa thấy hài lòng với các công cụ quản trị/truy vấn như pgadmin, dbeaver, datagrip. Bản thân Postgres như một DBMS thì rất tuyệt, và SQL Server cũng là tốt nhất nếu không tính chi phí. Điều khó hiểu là cộng đồng dường như chưa phàn nàn đủ nhiều về hệ sinh thái tooling của Postgres
Một điểm mà JetBrains rõ ràng vượt trội so với VSCode là có công cụ DB tích hợp sẵn rất gọn gàng
Postico từ lâu đã luôn là công cụ tiêu chuẩn của riêng tôi để làm việc với Postgres. Không biết có người dùng Postico nào đã thử extension mới này chưa
Tôi tò mò hiện tại IDE nào là IDE “giá trị nhất” với Microsoft. Chỉ vài năm trước, VSCode còn được quảng bá như kiểu “Visual Studio cho người mới bắt đầu”, nhưng gần đây VSCode đã trở thành “IDE” được dùng nhiều nhất. Còn Visual Studio thì thường bị xem là “legacy” dù vẫn rất tốt cho C++ và .NET
Có phải đây giống như Microsoft Access và PostgreSQL gặp lại nhau sau khoảng 30 năm không
Tôi muốn biết liệu SQLite có tính năng kiểu này không. Có phải mỗi DB đều cần một extension hoàn toàn riêng, hay vẫn có phần nào dùng chung được
VSCode có vẻ khá ổn, nhưng tôi ước có một cách dễ dàng hơn để trải VSCode ra nhiều màn hình. Hiện tại tôi đang để code ở một màn hình, còn công cụ DB là DataGrip ở màn hình khác