- ส่วนขยายนี้ช่วยลดความซับซ้อนในการเขียนคิวรีและการจัดการฐานข้อมูลด้วย 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 ความคิดเห็น
ความคิดเห็นจาก 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
ความประทับใจแรกคือทูลนี้ดูเจ๋งมาก รู้สึกแปลกใจที่ Microsoft ทุ่มแรงกับทูลสำหรับ Postgres แทนที่จะเป็น SQL Server เดาว่าน่าจะเป็นเพราะมีความต้องการใช้ Postgres สูงมาก
ตั้งใจว่าจะลองใช้ส่วนขยายนี้ด้วยตัวเอง จุดเริ่มต้นในสายอาชีพของผมคือ SQL Server และ SSMS ก็เข้ามือมาก แม้จะใช้ Postgres มาเกือบ 10 ปีแล้ว แต่ก็ยังไม่พอใจกับทูลสำหรับจัดการ/เขียนคิวรีอย่าง pgadmin, dbeaver, datagrip ฯลฯ ตัว Postgres DBMS เองยอดเยี่ยมมาก และ SQL Server ก็ยอดเยี่ยมเช่นกันถ้าไม่ติดเรื่องค่าใช้จ่าย แต่ก็ยังน่าประหลาดใจที่ชุมชนเงียบกันมาก ทั้งที่ควรจะไม่พอใจกับ ecosystem ด้าน tooling ของ Postgres มากกว่านี้
มองว่าจุดที่ JetBrains เหนือกว่า VSCode อย่างชัดเจน คือการมีทูลฐานข้อมูลแบบฝังในตัวที่เรียบร้อยดี
Postico เป็นเครื่องมือมาตรฐานประจำตัวของผมสำหรับใช้งานกับ Postgres มาโดยตลอด เลยสงสัยว่ามีผู้ใช้ Postico คนไหนลองส่วนขยายใหม่นี้แล้วบ้าง
สงสัยว่าตอนนี้ IDE ที่ “มีมูลค่า” มากที่สุดของ Microsoft คืออะไร เพราะเมื่อไม่กี่ปีก่อน VSCode ยังถูกโปรโมตคล้าย ๆ ว่าเป็น “Visual Studio สำหรับมือใหม่” แต่ทุกวันนี้ VSCode กลับกลายเป็น “IDE” ที่มีคนใช้มากที่สุดไปแล้ว ส่วน Visual Studio มักถูกมองว่าเป็นของ “legacy” (แม้ยังยอดเยี่ยมสำหรับ C++ และ .NET อยู่ก็ตาม)
คำถามว่ามันให้ความรู้สึกเหมือน Microsoft Access กับ PostgreSQL ได้กลับมาพบกันอีกครั้งหลังผ่านไปประมาณ 30 ปีหรือไม่
สงสัยว่า SQLite มีฟีเจอร์แบบนี้ด้วยหรือไม่ และถามว่าจำเป็นต้องมีส่วนขยายใหม่แยกกันสำหรับแต่ละ DB เลยหรือเปล่า หรือมีส่วนที่ใช้ร่วมกันได้
VSCode ดูโอเคพอสมควร แต่หวังว่าจะมีวิธีง่าย ๆ ในการกระจายตัว VSCode เองไปใช้บนหลายจอ ตอนนี้ผมแยกใช้โค้ดบนจอหนึ่ง และใช้ทูล DB บนอีกจอผ่าน DataGrip