3 คะแนน โดย GN⁺ 2025-05-24 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ส่วนขยายนี้ช่วยลดความซับซ้อนในการเขียนคิวรีและการจัดการฐานข้อมูลด้วย IntelliSense ที่ขับเคลื่อนด้วย AI และเอเจนต์ GitHub Copilot ‘@pgsql’
  • รองรับการจัดการความปลอดภัยและการปรับใช้บนคลาวด์แบบบูรณาการผ่าน การยืนยันตัวตนด้วย Entra ID และการเชื่อมต่อกับ Azure Database for PostgreSQL
  • มุ่งเน้นการเพิ่มประสิทธิภาพและผลิตผลของนักพัฒนาด้วย การแสดงภาพสคีมา, การจัดการประวัติคิวรี, และ contextual IntelliSense
  • ลดต้นทุนในการเริ่มต้นใช้งานและการสลับงานด้วยการเชื่อมต่อฐานข้อมูลหลายรายการ, การยืนยันตัวตนแบบไม่ใช้รหัสผ่าน, และ UI ที่ใช้งานง่าย

แนะนำ

  • Microsoft ประกาศพรีวิวสาธารณะของ ส่วนขยาย PostgreSQL ใหม่ สำหรับ Visual Studio Code (ต่อไปนี้เรียกว่า VS Code)
  • ส่วนขยายนี้ออกแบบมาเพื่อให้จัดการ ฐานข้อมูล PostgreSQL และเวิร์กโฟลว์ของนักพัฒนาได้อย่างง่ายดายในสภาพแวดล้อมเดียว
  • นักพัฒนาสามารถจัดการอ็อบเจ็กต์ฐานข้อมูล, ร่างคิวรี, ใช้ contextual IntelliSense และรับความช่วยเหลือจากเอเจนต์ GitHub Copilot ‘@pgsql’ ได้โดยไม่ต้องออกจาก VS Code

ปัญหาที่นักพัฒนาพบและแนวทางแก้ไข

  • จาก แบบสำรวจนักพัฒนา StackOverflow ปี 2024 ล่าสุด พบว่านักพัฒนา 41% ประสบปัญหา ความยากในการสลับงาน
  • รายงาน 2024 Stripe Developer Coefficient Report ระบุว่าเวลาในการพัฒนาสูงสุด 50% ถูกใช้ไปกับการดีบักและแก้ปัญหา
  • การขาดแคลนเครื่องมือขยายที่ ผสานการจัดการฐานข้อมูลและการพัฒนาแอปพลิเคชัน เข้าด้วยกันส่งผลต่อความไม่มีประสิทธิภาพ
  • ส่วนขยายใหม่นี้รวม เครื่องมือฐานข้อมูล Postgres และ @pgsql GitHub Copilot เข้าด้วยกัน เพื่อให้พัฒนา จัดการ และดีบักได้ในสภาพแวดล้อมเดียว
  • รองรับความปลอดภัยและการจัดการแบบรวมศูนย์ผ่าน การยืนยันตัวตนด้วย Entra ID และการทำงานร่วมกับ Azure Database for PostgreSQL อย่างแน่นแฟ้น

ความสามารถหลัก

การแสดงภาพสคีมา

  • ใน Object Explorer สามารถ คลิกขวา รายการในฐานข้อมูล แล้วเลือกตัวเลือก 'Visualize Schema' เพื่อดูภาพสคีมาได้

GitHub Copilot ที่รับรู้บริบทของฐานข้อมูล

  • ให้การช่วยเหลือด้วย AI ที่ รับรู้บริบท PostgreSQL ภายใน VS Code
  • ทำให้การสืบค้นฐานข้อมูล การปรับแต่งสคีมา และการรัน SQL ผ่านภาษาธรรมชาติเป็นเรื่องง่ายขึ้น
  • รองรับ การวิเคราะห์/ปรับแต่งคิวรีด้วย AI ผ่านคำสั่ง “@pgsql” และเมนูตามบริบทอย่าง “Rewrite Query”, “Explain Query”, “Analyze Query Performance”
  • ให้ คำแนะนำระดับผู้เชี่ยวชาญแบบเรียลไทม์ ระหว่างการพัฒนา พร้อมความสามารถด้านความปลอดภัยและประสิทธิภาพ

โหมดเอเจนต์แชตของ Copilot

  • เอเจนต์แชตอัจฉริยะแบบสนทนา (@pgsql) รองรับมากกว่าการถามตอบ ไปจนถึงงานหลายขั้นตอน
  • เข้าใจบริบทจริงของเวิร์กสเปซ และ สามารถเขียนโค้ดและดีบักได้เมื่อได้รับอนุญาต
  • สามารถสั่งงานซับซ้อนอย่างการสร้างฐานข้อมูลหรือเปิดใช้งานส่วนขยายได้ด้วยภาษาธรรมชาติ
  • งานที่เปลี่ยนแปลงฐานข้อมูลต้องได้รับ การอนุญาตจากผู้ใช้อย่างชัดเจน

การเชื่อมต่อและการจัดการฐานข้อมูล

  • เชื่อมต่อกับ อินสแตนซ์ PostgreSQL ทั้งแบบโลคัลและบนคลาวด์ ได้อย่างง่ายดาย
  • รองรับโปรไฟล์การเชื่อมต่อหลายรายการ, การแยกวิเคราะห์ connection string, และการตั้งค่าข้อมูลการเชื่อมต่อที่ง่ายขึ้น
  • สามารถสำรวจและกรอง การปรับใช้ Azure Database for PostgreSQL ได้โดยตรง
  • การผสานรวมกับ Entra ID ช่วยเพิ่มความปลอดภัยและการจัดการการเข้าถึงฐานข้อมูลแบบศูนย์กลางโดยผู้ดูแลระบบ

การยืนยันตัวตนแบบไม่ใช้รหัสผ่านและความปลอดภัย

  • รองรับ การยืนยันตัวตนแบบไม่ใช้รหัสผ่านด้วย Entra ID
    • ไม่ต้องล็อกอินด้วยตนเอง และรองรับการต่ออายุโทเคนอัตโนมัติ
    • ลดปัญหาการหมดเวลาการยืนยันตัวตน และคงความต่อเนื่องระหว่างการพัฒนา
    • สอดคล้องกับมาตรฐานความปลอดภัยระดับองค์กร
    • ใช้ข้อมูลรับรอง Entra ID เดิมได้
    • ไม่จำเป็นต้องจัดการบัญชีแยกต่างหาก

Database Explorer และประวัติคิวรี

  • สามารถ ตรวจสอบและจัดการโครงสร้างอ็อบเจ็กต์ฐานข้อมูล เช่น สคีมา ตาราง และฟังก์ชัน ได้อย่างเป็นระบบ
  • รองรับการสร้าง แก้ไข และลบอ็อบเจ็กต์
  • การจัดการประวัติคิวรีช่วยให้ นำคิวรีที่เคยรันกลับมาใช้ซ้ำได้ง่าย

การแก้ไขคิวรีและ contextual IntelliSense

  • รองรับ การเติมคำอัตโนมัติสำหรับคีย์เวิร์ด SQL ชื่อตาราง และชื่อฟังก์ชัน พร้อมการไฮไลต์ไวยากรณ์
  • มีการจัดรูปแบบคิวรีอัตโนมัติ การจัดการประวัติ และสภาพแวดล้อมการแก้ไขที่อ่านง่าย

จุดแตกต่างและจุดแข็ง

  • เพิ่มผลิตผล: ลดเวลาในการทำงานและลดข้อผิดพลาดด้วย contextual IntelliSense, การจัดรูปแบบ SQL เป็นต้น
  • การช่วยเหลือด้วย AI อัจฉริยะ: เอเจนต์แชต Copilot ที่รับรู้บริบทของฐานข้อมูล/เวิร์กสเปซ รองรับงานหลายขั้นตอน
  • เริ่มต้นใช้งานได้รวดเร็ว: ด้วยตัวจัดการการเชื่อมต่อ แม้ผู้เริ่มต้นก็สามารถตั้งค่าสภาพแวดล้อมได้ภายในไม่กี่นาที
  • ความปลอดภัย: การนำ Entra ID มาใช้ช่วยให้ควบคุมการเข้าถึงแบบรวมศูนย์ และสำรวจการปรับใช้บน Azure ได้ง่าย
  • ชุดเครื่องมือแบบบูรณาการ: จัดการอ็อบเจ็กต์ฐานข้อมูล รันคิวรี ไปจนถึงการปรับใช้อินสแตนซ์ได้ภายใน VS Code
  • เป็นมิตรกับคลาวด์: การผสานรวมอย่างลึกซึ้งกับ Azure Database for PostgreSQL ช่วยให้การดำเนินงานฐานข้อมูลบนคลาวด์ง่ายขึ้น

วิธีเริ่มต้น

  • ค้นหา 'PostgreSQL' ใน Extensions Marketplace ของ VS Code แล้วติดตั้ง Preview PostgreSQL extension (ไอคอนช้างสีน้ำเงิน)
  • ต้องมีส่วนขยาย GitHub Copilot และ Copilot chat และสามารถโต้ตอบกับ Copilot ได้ผ่านคำสั่ง "@pgsql"

ข้อเสนอแนะและแผนในอนาคต

  • สามารถส่งความคิดเห็นและรายงานปัญหาได้ผ่าน เครื่องมือฟีดแบ็กใน VS Code
  • ใบอนุญาตพรีวิวมาตรฐานจะมีการอัปเดตในอนาคต
  • ดูข้อมูลเพิ่มเติมและคู่มือเริ่มต้นใช้งานได้ที่ https://aka.ms/pg-vscode-docs

1 ความคิดเห็น

 
GN⁺ 2025-05-24
ความคิดเห็นจาก Hacker News
  • ขอแสดงความยินดีกับทีมสำหรับการเปิดตัว ขอแชร์ว่าผมเป็นคนแรกที่ได้เดโมสิ่งนี้จริง ๆ ในเซสชันสปอนเซอร์ของ Microsoft เมื่อสัปดาห์ก่อน สามารถดูวิดีโอเดโมได้ที่นี่ และยังมีอีกเซสชันหนึ่งที่บูธ MSFT แต่ตอนนี้ยังไม่ได้อัปโหลดวิดีโอบันทึกไว้ อย่างไรก็ตาม มีรีโปที่นี่ที่คุณสามารถลองทำตามทุกฟีเจอร์ที่ผมเดโมได้ด้วยตัวเอง ถ้าเจอปัญหาใด ๆ กรุณาแจ้งทีมได้ที่นี่

  • กล่าวถึงว่าทูลนี้เข้ามาแก้ปัญหาหลักแบบเดียวกับที่เคยแก้ไว้ผ่านแพ็กเกจ npm ที่ทำเองชื่อ “pgstrap” ทูลนี้สร้างโครงสร้างฐานข้อมูลออกมาเป็นรูปแบบไดเรกทอรี เพื่อให้ LLM (โมเดลภาษาขนาดใหญ่) ใช้งานสคีมาฐานข้อมูลของผมได้ และช่วยให้เห็นการเปลี่ยนแปลงของตารางอย่างชัดเจนเวลาทำ code review มันสร้างไฟล์ SQL สำหรับแต่ละตารางใน DB ของผม และจัดเป็นไดเรกทอรีตามแต่ละสคีมา แนวคิดคล้ายกับ schema.rb ของ Rails กำลังคิดอยู่ว่าการให้เอดิเตอร์รับรู้ฐานข้อมูลโดยตรงดีกว่า หรือการ commit context ลงไปใน codebase จะดีกว่า ถ้ามีโค้ด/อาร์ติแฟกต์ที่ถูกสร้างน้อยลง codebase ก็จะสะอาดกว่า แต่ในความเป็นจริง ไม่ใช่ทุกคนจะใช้ VS Code และอาจไม่รู้วิธีใช้ integration นี้ด้วย GUI สำหรับดูฐานข้อมูลเองก็ไม่เคยมีผู้ชนะในตลาดแบบชัดเจน ถึงอย่างนั้น ด้วยส่วนแบ่งตลาดที่ท่วมท้นของ VS Code มันก็อาจกลายเป็นมาตรฐานของการดู DB ภายในสภาพแวดล้อมการพัฒนาได้ ลิงก์ pgstrap

    • ตั้งคำถามว่าสถานะปัจจุบันของสคีมาฐานข้อมูลและ migration ทั้งหมดที่อยู่ใน version control นั้นเป็นมาตรฐานสมบูรณ์ของเว็บเฟรมเวิร์กจริงหรือไม่
    • มองว่าเป็นทูลที่ใช้ได้จริงและขอบคุณที่แชร์ พร้อมสงสัยว่านอกจากตาราง/คอลัมน์/ดัชนีแล้ว มันแสดง trigger หรือ stored procedure ด้วยหรือไม่ ชี้ให้เห็นว่าหลายทูลหยุดอยู่แค่ definition ของตาราง และหวังว่าจะมีเครื่องมือที่ใช้ความสามารถของ DB ได้มากกว่านี้
    • แนะนำวิธีใช้ MCP server (รวมถึง copilot/cline) โดยใช้เพียงบัญชีล็อกอินแบบ read only สำหรับ DB ของตัวเอง
  • ความประทับใจแรกคือทูลนี้ดูเจ๋งมาก รู้สึกแปลกใจที่ Microsoft ทุ่มแรงกับทูลสำหรับ Postgres แทนที่จะเป็น SQL Server เดาว่าน่าจะเป็นเพราะมีความต้องการใช้ Postgres สูงมาก

    • มีส่วนขยาย Microsoft SQL Server บน VS Code อยู่แล้ว และความเห็นนี้มองว่าของที่ออกมาครั้งนี้แทบจะเป็นโคลนของมัน หลังจากลองใช้แล้วรู้สึกว่าเมนู กล่องโต้ตอบ และทุกอย่างโดยรวมเหมือนกันมาก มีคำอธิบายว่าเมื่อก่อน Azure Data Studio (ตอนนี้ยุติการสนับสนุนแล้ว) เคยเป็นฐานของส่วนขยายนี้ ลิงก์ส่วนขยาย SQL Server
    • จากมุมมองของ Microsoft developer evangelist ขอแชร์ว่าทีมพัฒนาส่วนขยาย SQL Server และ PostgreSQL ต่างก็ทุ่มเทอย่างมากทั้งคู่ จากประสบการณ์ที่ได้เข้าร่วม usability test และ bug bash ของทั้งสองทีม ทำให้เห็นถึงความตั้งใจในการสร้างเครื่องมือที่เป็นมิตรกับนักพัฒนา ขอให้ช่วยส่ง feedback ที่จำเป็นให้ทีมด้วย ข่าว SQL Server ติดตาม Carlos Robles ข่าว PostgreSQL ติดตาม Joshua Johnson
    • คาดเดาว่าเป็นเพราะทูล MSSQL ได้รับการดูแลอย่างต่อเนื่องผ่าน ADS และมีคุณภาพสูง Azure Data Studio กำลังถูกยุติแล้ว และส่วนขยาย Postgres สำหรับ VS Code ก่อนหน้านี้ก็แทบไม่มี commit ที่มีนัยสำคัญในช่วง 6 ปีที่ผ่านมา ก่อนหน้านี้ไม่มีตัวเลือกแทนสำหรับ Postgres จึงต้องใช้ ADS ต่อไป ลิงก์อ้างอิง
    • คิดว่า SQL Server Management Studio (SSMS) ก็ทำหน้าที่คล้ายกันนี้อยู่แล้ว อาจมีแผนในระยะยาวที่จะย้าย SSMS ไปสู่ VS Code จึงอาจกำลังทดลองด้วยการรองรับ Postgres ก่อน ลิงก์ SSMS
    • อยากให้มีส่วนขยายแนวนี้สำหรับ SQLite ด้วย
  • ตั้งใจว่าจะลองใช้ส่วนขยายนี้ด้วยตัวเอง จุดเริ่มต้นในสายอาชีพของผมคือ SQL Server และ SSMS ก็เข้ามือมาก แม้จะใช้ Postgres มาเกือบ 10 ปีแล้ว แต่ก็ยังไม่พอใจกับทูลสำหรับจัดการ/เขียนคิวรีอย่าง pgadmin, dbeaver, datagrip ฯลฯ ตัว Postgres DBMS เองยอดเยี่ยมมาก และ SQL Server ก็ยอดเยี่ยมเช่นกันถ้าไม่ติดเรื่องค่าใช้จ่าย แต่ก็ยังน่าประหลาดใจที่ชุมชนเงียบกันมาก ทั้งที่ควรจะไม่พอใจกับ ecosystem ด้าน tooling ของ Postgres มากกว่านี้

    • โดยส่วนตัวมองว่า Datagrip คือทูลฐานข้อมูลแบบทั่วไปที่น่าประทับใจที่สุดที่เคยใช้มาแบบทิ้งห่าง ลองใช้มาหลายตัว แต่ส่วนใหญ่ให้ความรู้สึกเหมือนสร้างโดยผู้เชี่ยวชาญฐานข้อมูล มากกว่าจะเป็นผู้เชี่ยวชาญ IDE และมีไม่กี่ตัวที่ให้ความรู้สึกเหมือนผลิตภัณฑ์ที่สร้างโดยผู้เชี่ยวชาญ IDE จริง ๆ ทั้งด้านฟีเจอร์ การขยายความสามารถ และความเร็วในการปรับปรุงล้วนทำให้พอใจ รู้สึกว่าคนละระดับกับโอเพนซอร์สอย่าง pgadmin และ dbeaver ตอนทำงานกับ Oracle นั้น Datagrip ช่วยรักษาสุขภาพจิตไว้ได้จริง
    • วิเคราะห์ว่าจริง ๆ แล้วนักพัฒนา SQL เกือบทั้งหมดไม่ได้ใส่ใจกับ tooling มากนัก โดยมากคนที่ออกแบบฐานข้อมูล/ตารางมักเป็นอีกกลุ่มหนึ่ง นักพัฒนาทั่วไปมักสนใจเพียงตาราง/วิวมากกว่าฐานข้อมูล และแทบไม่สนใจดัชนีเลย คนที่สนใจ tooling จะถูกเรียกว่า “development DBA” ซึ่งพบได้น้อยมาก ทำให้หาคนยากและอัตราการย้ายงานก็สูง
  • มองว่าจุดที่ JetBrains เหนือกว่า VSCode อย่างชัดเจน คือการมีทูลฐานข้อมูลแบบฝังในตัวที่เรียบร้อยดี

    • ทุกปีจะพยายามกลับไปใช้ VSCode อยู่ครั้งหนึ่ง แต่สุดท้ายก็ไปต่อไม่ได้เพราะฟีเจอร์ git และ DB integration อันทรงพลังแบบเฉพาะตัวของ JetBrains
    • จะใช้ Datagrip แยกเดี่ยวต่างหากก็ได้ และผมเองก็เลือกวิธีนี้
  • Postico เป็นเครื่องมือมาตรฐานประจำตัวของผมสำหรับใช้งานกับ Postgres มาโดยตลอด เลยสงสัยว่ามีผู้ใช้ Postico คนไหนลองส่วนขยายใหม่นี้แล้วบ้าง

    • Postico ค่อนข้างเฉพาะทางสำหรับ Mac และตัวแก้ไข DB ที่ฝังมาใน IntelliJ ก็มีฟีเจอร์มากกว่ามาก
    • ในฐานะผู้ใช้ Postico มานานกว่า 10 ปี ผมก็มีแผนจะลองส่วนขยายนี้เหมือนกัน และหวังว่าเวลาใช้คู่กับ node-pg แล้ว Copilot จะมองเห็นสคีมาได้
  • สงสัยว่าตอนนี้ IDE ที่ “มีมูลค่า” มากที่สุดของ Microsoft คืออะไร เพราะเมื่อไม่กี่ปีก่อน VSCode ยังถูกโปรโมตคล้าย ๆ ว่าเป็น “Visual Studio สำหรับมือใหม่” แต่ทุกวันนี้ VSCode กลับกลายเป็น “IDE” ที่มีคนใช้มากที่สุดไปแล้ว ส่วน Visual Studio มักถูกมองว่าเป็นของ “legacy” (แม้ยังยอดเยี่ยมสำหรับ C++ และ .NET อยู่ก็ตาม)

    • ถ้ามองในแง่การเข้าถึงนักพัฒนา VSCode กินขาด แม้จะไม่ได้สนใจ ecosystem ของ MS มากนัก นักพัฒนา .Net ก็ยังมีแนวโน้มใช้ Rider กันมากขึ้น และ Visual Studio ก็มักเหลืออยู่ในสภาพแวดล้อมที่เปลี่ยนแปลงยากคล้าย Eclipse/Netbeans ตัวผมเป็นผู้ใช้ emacs แต่เวลาใช้ SQL Server บนสภาพแวดล้อมที่ไม่ใช่ Windows ก็ต้องจำใจเปิด VSCode
    • ถ้ามองในแง่ความสามารถในการทำกำไร Visual Studio สูงกว่ามาก คาดว่า enterprise workflow และปลั๊กอินจำนวนไม่น้อยคงไม่ถูกย้ายมาบน VSCode แต่ในฐานะช่องทางเข้าสู่ ecosystem ของ MS, ส่วนแบ่งความสนใจในใจนักพัฒนา และความสามารถในการขยายไปสู่ web IDE นั้น VSCode เหนือกว่าอย่างชัดเจน พร้อมอธิบายข้อดีหลายอย่างและเสียดายข้อจำกัดของ Electron shell
    • ยืนยันว่าเป็น VSCode แบบทิ้งห่าง VSCode แม้จะฟรี แต่ก็ทำหน้าที่เป็นประตูสู่ ecosystem ของ MS และช่วยให้ MS ยังคงอยู่ในตลาดนักพัฒนาได้ต่อไป
    • ในอุตสาหกรรมเกม Visual Studio ยังถูกใช้อย่างแพร่หลาย และยังเป็นสิ่งจำเป็นเมื่อต้องพัฒนาให้บางแพลตฟอร์ม แม้ Rider จะถูกใช้มากขึ้น แต่ VS ก็ยังถูกใช้เป็นส่วนหนึ่งของระบบ build
    • ชี้ว่าจริง ๆ แล้วไม่เคยมีการโปรโมตว่าให้ย้ายจาก VSCode ไปเป็น “นักพัฒนาตัวจริง” บน Visual Studio เพราะ Python/HTML/JavaScript เป็นต้น เดิมทีก็ทำงานบน VS ได้ไม่ดีอยู่แล้ว จึงแทบไม่มีเส้นทางการย้ายใช้งานแบบนั้นตั้งแต่แรก
  • คำถามว่ามันให้ความรู้สึกเหมือน Microsoft Access กับ PostgreSQL ได้กลับมาพบกันอีกครั้งหลังผ่านไปประมาณ 30 ปีหรือไม่

    • ถ้าผมพลาดอะไรไปเกี่ยวกับ Access ก็ช่วยบอกด้วย และถ้ามีทางเลือกที่ดีกว่า DBeaver ก็อยากได้คำแนะนำจริง ๆ
  • สงสัยว่า SQLite มีฟีเจอร์แบบนี้ด้วยหรือไม่ และถามว่าจำเป็นต้องมีส่วนขยายใหม่แยกกันสำหรับแต่ละ DB เลยหรือเปล่า หรือมีส่วนที่ใช้ร่วมกันได้

  • VSCode ดูโอเคพอสมควร แต่หวังว่าจะมีวิธีง่าย ๆ ในการกระจายตัว VSCode เองไปใช้บนหลายจอ ตอนนี้ผมแยกใช้โค้ดบนจอหนึ่ง และใช้ทูล DB บนอีกจอผ่าน DataGrip

    • VSCode รองรับหลายจออยู่แล้ว ดูเอกสารทางการ
    • มีการแชร์ประสบการณ์ว่าใน VSCode สามารถแยกแท็บออกไปเป็นหน้าต่างแยกแล้ววางไว้หลายจอได้อยู่แล้ว รวมถึงเทอร์มินัลด้วย UI อาจไม่ใช่แบบที่เข้าใจได้ทันที แต่พอคุ้นแล้วจะชอบมาก และยังสามารถวางโค้ดกับเทอร์มินัลไว้ข้างกันได้ด้วย (พร้อมพูดถึงว่าในอดีต emacs ก็ทำสิ่งนี้ได้มานานแล้ว)
    • เพิ่งรู้เมื่อวานว่าสามารถแยกแท็บออกเป็นหน้าต่างใหม่ได้ แม้จะยังไม่ใช่ประสบการณ์หลายจอที่ลื่นไหลอย่างสมบูรณ์ แต่ก็เอาไว้ใช้สองจอได้ อย่างน้อยก็ลองดู
    • เสนอวิธีแก้ปัญหาด้วยฮาร์ดแวร์ คือใช้จอ ultrawide 38 นิ้วตัวเดียวไปเลย