Mulai Cepat: Mengonfigurasi ekstensi GitHub Copilot for PostgreSQL di Visual Studio Code (Pratinjau)

Ekstensi PostgreSQL untuk Visual Studio Code mencakup integrasi GitHub Copilot, meningkatkan alur kerja database Anda dengan pengembangan yang dibantu AI. Setelah tersambung ke database PostgreSQL, Copilot mengakses informasi kontekstual dari koneksi langsung Anda. Akses ini memungkinkan peserta @pgsql Copilot Chat menghasilkan kueri dan wawasan SQL yang akurat dan sadar skema, menyederhanakan pengembangan dan meminimalkan peralihan konteks dalam Visual Studio Code.

Peserta @pgsql bekerja terhadap database apa pun yang dapat disambungkan oleh ekstensi, termasuk:

  • kluster Azure HorizonDB.

Saat terhubung ke kluster HorizonDB, Copilot mengetahui ekstensi khusus HorizonDB yang diinstal pada database (seperti pgvector, pg_diskann, azure_ai, dan age) dan dapat menghasilkan perintah dan SQL yang memanfaatkannya.

Prerequisites

Sebelum memulai, verifikasi bahwa Anda memiliki alat dan sumber daya yang tepat yang diunduh dan diinstal.

Menginstal ekstensi GitHub Copilot dan GitHub Copilot Chat

Jika Anda belum menginstal ekstensi GitHub Copilot di Visual Studio Code:

  1. Pilih ikon Ekstensi di Visual Studio Code, cari GitHub Copilot, dan pilih Instal.
  2. Ekstensi GitHub Copilot Chat secara otomatis diinstal bersama dengan GitHub Copilot.

Masuk ke GitHub di Visual Studio Code

  1. Pastikan Anda memiliki akun GitHub dan langganan GitHub Copilot aktif:
  2. Di Visual Studio Code, pilih ikon Account dan pilih Sign dengan GitHub untuk menggunakan GitHub Copilot.

Mulai menggunakan GitHub Copilot

Ikuti langkah-langkah untuk mulai menggunakan GitHub Copilot dengan ekstensi PostgreSQL Visual Studio Code.

  1. Klik kanan pada database PostgreSQL di Object Explorer dan pilih Chat dengan database ini. Ini berfungsi untuk koneksi apa pun - PostgreSQL lokal atau Azure HorizonDB.
  2. Jika diminta, pilih Izinkan untuk mengaktifkan GitHub Copilot untuk mengakses konteks koneksi database.
  3. Saat antarmuka obrolan Copilot terbuka, mulai ajukan pertanyaan dengan menggunakan @pgsql awalan untuk menentukan bahwa Anda ingin berinteraksi dengan database PostgreSQL.

Coba perintah seperti:

@pgsql tell me about the tables in the HR schema

Copilot merespons dengan deskripsi terperinci tentang tabel skema Anda.

Menyambungkan ke titik akhir HorizonDB yang tepat

Karena kluster Azure HorizonDB memiliki dua titik akhir, koneksi yang Anda gunakan untuk mulai mengobrol menentukan titik akhir tempat SQL yang dihasilkan Copilot akan dijalankan:

  • Read/write endpoint - Gunakan koneksi ini saat Anda ingin Copilot menyusun draf, memodifikasi, atau menjalankan pernyataan yang mengubah data atau skema, atau yang harus membaca status commit terbaru.
  • Endpoint pembaca - Gunakan koneksi ini saat Anda ingin Copilot menyusun dan menjalankan kueri hanya-baca yang mendapat manfaat dari scale-out dengan penyeimbangan beban di seluruh replika HA (misalnya, analitik eksploratif atau prompt pelaporan).

Jika Copilot menghasilkan perintah penulisan saat Anda tersambung ke endpoint pembaca, alihkan koneksi aktif ke endpoint baca/tulis sebelum menyetujui eksekusi.

Menggunakan kemampuan baca dan tulis

Integrasi GitHub Copilot untuk ekstensi PostgreSQL di Visual Studio Code mendukung operasi baca dan tulis. Anda dapat mengkueri data, memodifikasi skema, dan memperbarui rekaman langsung dari editor dengan saran yang didukung AI yang memperhitungkan konteks koneksi langsung.

Note

Integrasi GitHub Copilot Chat untuk PostgreSQL dapat membuat perubahan pada database Anda. Gunakan fitur ini dengan hati-hati, terutama di lingkungan penahapan dan produksi. Selalu tinjau kode SQL yang dihasilkan sebelum menjalankannya, dan pertimbangkan untuk mengujinya di lingkungan yang aman terlebih dahulu. Pada Azure HorizonDB, pastikan juga operasi tulis diarahkan ke endpoint baca/tulis - endpoint pembaca bersifat baca-saja.

Coba perintah yang lebih lanjut:

@pgsql convert the hr.employees table to use a JSONB column for the address field

Copilot dapat merespons dengan saran SQL dan meminta izin untuk melakukan perubahan.

Untuk menyetujui eksekusi:

@pgsql Yes, please make the JSONB column for me

Kemudian Copilot meminta konfirmasi:

@pgsql Yes, I confirm

Gunakan opsi menu konteks

Anda dapat memilih kode SQL di editor dan klik kanan untuk mengakses opsi menu konteks GitHub Copilot seperti Menjelaskan Kueri, Menulis Ulang Kueri, atau Menganalisis Performa Kueri. Pada HorizonDB, penjelasan dan saran penulisan ulang juga mempertimbangkan indeks khusus HorizonDB (seperti indeks vektor pg_diskann) jika tersedia.

Ide lainnya dan resep prompt

Bagian berikut ini memperlihatkan perintah konsep yang dapat Anda coba atau ubah agar sesuai dengan konteks database dan lingkungan pengembangan Anda.

Pengoptimalan kueri

Gunakan perintah ini untuk memandu Copilot dalam mengatasi tantangan pengoptimalan kueri tertentu.

I'm working on optimizing my database for high-concurrency workloads. The table is called transactions with millions of records, and I'm experiencing deadlocks under a heavy load. Help me optimize my table schema and queries.

I need help writing a query. The data is stored in the orders table, which uses the columns customer_id, order_date, and total_price. I also need to include a rolling 3-month average of customer spending using a window function.

I'm getting this error: 'ERROR: column "orders.total_price" must appear in the GROUP BY clause or be used in an aggregate function.'

Pengoptimalan performa

Gunakan perintah ini untuk memandu Copilot dalam mengatasi tantangan pengoptimalan performa tertentu.

Provide the Explain Plan for my most recent query, and please explain each step.

Can you run some performance metrics on my database and tell me how it performs?

My orders table has 10 million records, and queries on customer_id and order_date are slow. How can I optimize indexing, partitioning, and schema design for performance?

Pengembangan aplikasi

Gunakan perintah ini untuk memandu Copilot dalam mengatasi tantangan pengembangan aplikasi.

Generate a FastAPI endpoint to fetch orders from the ecom.orders table with pagination.

Generate an ETL pipeline script to clean and normalize the customer table data.

Generate a FastAPI project with my database using SQLAlchemy.

Beban kerja AI di Azure HorizonDB

Saat terhubung ke kluster HorizonDB, Anda dapat menggunakan Copilot untuk membangun kemampuan AI HorizonDB - pgvector, pg_diskann (dengan Pemfilteran Tingkat Lanjut), dan Fungsi AI azure_ai yang didukung oleh AI Model Management (pratinjau terbatas) atau penyebaran Microsoft Foundry Anda sendiri.

@pgsql Create a products table with a description column and a vector(1536) embedding column. Then write a query that populates the embedding column for any rows where it's NULL using azure_openai.create_embeddings with the default-embedding managed model.

@pgsql Build a pg_diskann index on the products.embedding column using vector_cosine_ops, then write a similarity search that finds the top 10 products with average_rating > 4.5 and price between 100 and 200 - using DiskANN Advanced Filtering so the WHERE clause is evaluated during the vector search.

@pgsql Use azure_ai.extract() to pull product and sentiment out of the review_text column of the product_reviews table, and azure_ai.is_true() to flag reviews that mention shipping issues.

@pgsql I have a Microsoft Foundry deployment of gpt-5 in my own subscription. Show me how to register it with model_registry.model_add as 'gpt-5-byom' and then call azure_ai.generate() with that alias to rewrite the comment_text column of user_comments to be more polite.

Peluasan skala baca

Saat terhubung ke reader endpoint dari cluster HorizonDB, Anda dapat meminta Copilot untuk membuat draf beban kerja baca-saja yang memanfaatkan replika HA dengan penyeimbangan beban:

@pgsql Generate a reporting query against the orders and customers tables that aggregates monthly revenue by region and customer segment. Make sure the query is read-only so it's safe to run against the HorizonDB reader endpoint.

Pembersihan

Untuk memastikan pengalaman yang lancar, bersihkan sumber daya atau konfigurasi sementara yang Anda buat selama panduan cepat ini. Contohnya:

  • Putuskan sambungan dari database PostgreSQL di Visual Studio Code.
  • Hapus semua database pengujian, tabel, atau indeks (termasuk indeks pg_diskann apa pun) yang Anda buat selama sesi.
  • Tutup koneksi terbuka apa pun untuk menghindari penggunaan sumber daya yang tidak perlu.

Tanggapan dan dukungan

Untuk bug, permintaan fitur, dan masalah, gunakan alat umpan balik bawaan di Visual Studio Code. Anda dapat menyelesaikan umpan balik ini melalui menu Bantuan Visual Studio Code atau palet perintah PGSQL.

  • Menu Bantuan
    • Pergi ke Bantuan > Laporkan Masalah
  • Palet perintah
    • Buka Palet Perintah dengan Ctrl + Shift + P dan jalankan: PGSQL: Report Issue