3 điểm bởi GN⁺ 2025-05-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

 
GN⁺ 2025-05-24
Ý 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.rb củ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

    • Tôi thắc mắc liệu việc đưa trạng thái hiện tại của schema database cùng toàn bộ migration vào version control có phải là chuẩn tuyệt đối trong các web framework hay không
    • Đây có vẻ là một công cụ rất thực dụng, cảm ơn vì đã chia sẻ. Tôi tò mò liệu nó có xuất ra cả trigger, stored procedure và những thứ ngoài bảng/cột/index hay không. Nhiều công cụ chỉ dừng ở định nghĩa bảng. Chúng ta cần thêm nhiều công cụ tận dụng được nhiều tính năng hơn của DB
    • Tôi dùng một tài khoản đăng nhập chỉ đọc duy nhất vào DB của mình thông qua MCP server (và copilot/cline)
  • Ấ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 đó

    • Thực ra đã có extension Microsoft SQL Server cho VS Code rồi, và bản mới này về cơ bản giống như một bản sao của nó. Tôi đã thử dùng và thấy menu, hộp thoại cùng cảm giác tổng thể gần như y hệt. Trước đây Azure Data Studio (giờ đã ngừng hỗ trợ) là nền tảng của extension đó. Liên kết extension SQL Server
    • Từ góc nhìn của một developer evangelist tại Microsoft, tôi có thể nói rằng cả đội phát triển extension SQL Server lẫn PostgreSQL đều đang đổ rất nhiều công sức vào sản phẩm của họ. Qua việc tham gia usability testing và bug bash của cả hai đội, tôi đã thấy rõ niềm đam mê của họ trong việc tạo ra công cụ thân thiện với lập trình viên. Hãy nhất định phản hồi cho nhóm những gì bạn cần. Tin tức SQL Server thì theo dõi Carlos Robles Tin tức PostgreSQL thì theo dõi Joshua Johnson
    • Tôi đoán là vì bộ công cụ MSSQL đã được duy trì liên tục qua ADS và chất lượng cũng cao. Azure Data Studio hiện đang bị khai tử, còn extension Postgres cho VS Code thì theo tôi biết trong 6 năm gần đây không có commit đáng kể. Trước đó, vì không có lựa chọn thay thế nào cho Postgres nên tôi vẫn dùng ADS. Liên kết tham khảo
    • Tôi cứ nghĩ SQL Server Management Studio (SSMS) đã đảm nhiệm vai trò tương tự rồi chứ. Có lẽ họ đang có kế hoạch cuối cùng sẽ chuyển SSMS sang VS Code. Vì vậy có thể họ đang thử nghiệm trước với hỗ trợ Postgres. Liên kết SSMS
    • Sẽ thật tốt nếu cũng có một extension tương tự như vậy cho SQLite
  • 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

    • Cá nhân tôi thấy trong số các công cụ DB đa dụng từng dùng, DataGrip gây ấn tượng vượt trội. Tôi đã thử nhiều công cụ DB, nhưng phần lớn tạo cảm giác như do chuyên gia DB làm ra, còn sản phẩm do chuyên gia IDE tạo ra thì hiếm hơn. Về tính năng, khả năng mở rộng, tốc độ cải tiến, mọi mặt đều rất hài lòng. So với mã nguồn mở như pgadmin hay dbeaver thì đúng là khác hẳn một đẳng cấp. Trong công việc với Oracle, DataGrip đã cứu sức khỏe tinh thần của tôi
    • Chẩn đoán của tôi là gần như đa số lập trình viên SQL thực ra không quá quan tâm đến tooling. Thường sẽ có người riêng thiết kế database/bảng, còn lập trình viên bình thường chủ yếu chỉ để ý bảng/view hơn là DB, và hầu như không quan tâm đến index. Những người thật sự hứng thú với tooling kiểu này thường được gọi là “developer DBA”, rất hiếm, nên cũng khó tuyển và tỷ lệ nhảy việc cao
  • 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

    • Mỗi năm tôi đều thử quay lại VSCode một lần, nhưng các tính năng tích hợp git và DB mạnh mẽ của JetBrains luôn níu tôi lại
    • Cũng có thể chỉ dùng riêng DataGrip thôi, và đó là cách tôi chọn
  • 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

    • Postico có phần thiên về Mac, còn trình chỉnh sửa DB tích hợp trong IntelliJ thì phong phú hơn nhiều về mặt tính năng
    • Là người đã dùng Postico hơn 10 năm, tôi cũng định thử extension này. Tôi hy vọng khi dùng cùng node-pg thì Copilot sẽ nhận diện được schema
  • 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

    • Nếu xét về độ phủ tới lập trình viên thì chắc chắn là VSCode. Ngay cả khi không quá quan tâm đến hệ sinh thái MS, các lập trình viên .Net cũng đang dùng Rider khá nhiều, còn Visual Studio có lẽ sẽ chủ yếu tồn tại ở những môi trường khó thay đổi giống kiểu Eclipse/Netbeans. Tôi là người dùng emacs, nhưng khi phải làm việc với SQL Server ngoài môi trường Windows thì cuối cùng vẫn buộc phải mở VSCode
    • Nếu xét về lợi nhuận thì Visual Studio cao hơn hẳn. Một phần đáng kể các plugin và enterprise workflow sẽ không được chuyển sang VSCode. Nhưng về vai trò cổng vào hệ sinh thái MS, mindshare, và khả năng mở rộng sang web IDE thì VSCode chiếm ưu thế. Có nhiều ưu điểm, dù tôi vẫn tiếc những giới hạn của lớp vỏ Electron
    • Áp đảo là VSCode. Dù VSCode miễn phí, nó đóng vai trò cửa ngõ đưa người dùng vào hệ sinh thái MS và giúp Microsoft tiếp tục hiện diện trong thị trường lập trình viên
    • Trong ngành game, Visual Studio vẫn được dùng rất rộng rãi, và khi nhắm tới một số nền tảng thì còn là bắt buộc. Rider đang được dùng ngày càng nhiều, nhưng VS vẫn được dùng như một phần của hệ thống build
    • Chưa từng có chuyện VSCode được quảng bá theo kiểu sau này bạn sẽ “lên đời” thành lập trình viên thực thụ bằng cách chuyển sang Visual Studio. Python/HTML/JavaScript vốn ngay từ đầu đã không chạy tốt trong VS, nên thực tế chẳng có lộ trình chuyển đổi như vậy
  • Có phải đây giống như Microsoft Access và PostgreSQL gặp lại nhau sau khoảng 30 năm không

    • Nếu tôi đã bỏ sót phần nào liên quan đến Access thì hãy chỉ giúp. Tôi thực sự muốn có một lựa chọn tốt hơn DBeaver nếu có
  • 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

    • VSCode đã hỗ trợ đa màn hình rồi, xem tài liệu chính thức
    • Tôi đã tách tab thành cửa sổ riêng trong VSCode và đặt ở nhiều màn hình khác nhau. Làm vậy cả với terminal cũng được. UI không quá trực quan nhưng khi quen rồi thì rất ổn. Bạn cũng có thể đặt code và terminal cạnh nhau. (Ngày xưa emacs cũng làm được chuyện này từ lâu rồi)
    • Hôm qua tôi mới biết có thể tách tab sang cửa sổ mới. Đây chưa phải trải nghiệm đa màn hình hoàn toàn tự nhiên, nhưng ít nhất cũng dùng được trên hai màn hình nên cứ chia sẻ để bạn tham khảo
    • Cũng có thể giải quyết bằng phần cứng, tức là dùng một màn hình siêu rộng 38 inch