Rychlý start: Konfigurace rozšíření GitHub Copilot for PostgreSQL v Visual Studio Code (Preview)

Rozšíření PostgreSQL pro Visual Studio Code zahrnuje integraci GitHub Copilot a vylepšuje pracovní postupy databáze pomocí vývoje s asistencí AI. Po připojení k databázi PostgreSQL Copilot přistupuje ke kontextovým informacím z vašeho aktivního připojení. Tento přístup umožňuje účastníkovi @pgsql Copilot Chat generovat přesné dotazy a přehledy SQL s podporou schématu, zjednodušení vývoje a minimalizaci přepínání kontextu v rámci Visual Studio Code.

Účastník @pgsql pracuje s jakoukoli databází, ke které se rozšíření může připojit, včetně:

  • Clustery Azure HorizonDB

Při připojení ke clusteru HorizonDB Copilot ví o rozšířeních specifických pro HorizonDB nainstalovaných v databázi (například pgvector, pg_diskann, azure_ai a age) a může generovat výzvy a SQL, které tato rozšíření využívají.

Předpoklady

Než začnete, ověřte, že máte nainstalované správné nástroje a prostředky.

Instalace rozšíření GitHub Copilot a GitHub Copilot Chat

Pokud ještě nemáte nainstalované rozšíření GitHub Copilot v editoru Visual Studio Code:

  1. Vyberte ikonu Rozšíření v editoru Visual Studio Code, vyhledejte GitHub Copilot a vyberte Nainstalovat.
  2. Rozšíření GitHub Copilot Chat se automaticky nainstaluje společně s GitHub Copilotem.

Přihlášení k GitHubu v editoru Visual Studio Code

  1. Ujistěte se, že máte účet GitHub a aktivní předplatné GitHub Copilot:
  2. V Visual Studio Code vyberte ikonu Account a zvolte Sign in with GitHub to use GitHub Copilot.

Začínáme s GitHub Copilotem

Podle pokynů začněte používat GitHub Copilot s rozšířením PostgreSQL Visual Studio Code.

  1. Pravým tlačítkem myši klikněte na databázi PostgreSQL v Průzkumník objektů a vyberte Chat s touto databází. To funguje pro jakékoli připojení – místní PostgreSQL nebo Azure HorizonDB.
  2. Pokud se zobrazí výzva, vyberte Povolit, aby GitHub Copilot mohl získat přístup ke kontextu připojení k databázi.
  3. Když se otevře rozhraní chatu Copilot, začněte klást otázky pomocí @pgsql předpony k určení, že chcete pracovat s databází PostgreSQL.

Zkuste takovou výzvu:

@pgsql tell me about the tables in the HR schema

Copilot odpoví podrobným popisem tabulek schématu.

Připojení ke správnému koncovému bodu HorizonDB

Protože cluster Azure HorizonDB zpřístupňuje dva koncové body, připojení, ve kterém zahájíte chat, určuje, vůči kterému koncovému bodu se SQL vygenerované Copilotem spustí:

  • Koncový bod pro čtení a zápis – Toto připojení použijte tehdy, když chcete, aby Copilot navrhoval, upravoval nebo spouštěl příkazy, které mění data nebo schéma nebo které musí číst nejnovější potvrzený stav.
  • Koncový bod čtecího přístupu – Toto připojení použijte, když chcete, aby Copilot navrhoval a spouštěl dotazy jen pro čtení, které využívají horizontální škálování s vyrovnáváním zátěže napříč replikami vysoké dostupnosti (například pro průzkumnou analytiku nebo dotazy pro vytváření sestav).

Pokud Copilot vygeneruje příkaz pro zápis, když jste připojení ke koncovému bodu čtenáře, před schválením provádění přepněte aktivní připojení ke koncovému bodu pro čtení a zápis.

Použití funkcí čtení a zápisu

Integrace GitHub Copilot rozšíření PostgreSQL v Visual Studio Code podporuje operace čtení i zápisu. Můžete se dotazovat na data, upravovat schémata a aktualizovat záznamy přímo z editoru pomocí návrhů založených na umělé inteligenci, které berou v úvahu kontext živého připojení.

Note

Integrace Copilot Chat GitHubu pro PostgreSQL může provádět změny v databázi. Tuto funkci používejte s opatrností, zejména v pracovních a produkčních prostředích. Před spuštěním vždy zkontrolujte vygenerovaný kód SQL a nejprve zvažte jeho testování v bezpečném prostředí. Na Azure HorizonDB také zajistěte, aby operace zápisu cílily na koncový bod koncový bod pro čtení/zápis – koncový bod čtečky je jen pro čtení.

Zkuste pokročilejší výzvu:

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

Copilot může reagovat na návrhy SQL a požádat o oprávnění k provedení změn.

Schválení provádění:

@pgsql Yes, please make the JSONB column for me

Pak Copilot požádá o potvrzení:

@pgsql Yes, I confirm

Použijte možnosti kontextové nabídky

V editoru můžete vybrat kód SQL a po kliknutí pravým tlačítkem myši získat přístup k možnostem místní nabídky GitHub Copilotu, jako je vysvětlení dotazu, přepsání dotazu nebo analýza výkonu dotazu. V HorizonDB vysvětlení a návrhy na přepsání také zohledňují indexy specifické pro HorizonDB (například pg_diskann vektorové indexy), pokud jsou k dispozici.

Další nápady a recepty pro prompty

Následující části ukazují výzvy k konceptům, které můžete zkusit nebo upravit tak, aby odpovídaly kontextu databáze a vývojovému prostředí.

Optimalizace dotazů

Použijte tyto pokyny k tomu, aby Copilot řešil specifické problémy s optimalizací dotazů.

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.'

Optimalizace výkonu

Tyto podněty vám pomohou vést Copilot při řešení konkrétních problémů optimalizace výkonu.

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?

Vývoj aplikací

Pomocí těchto pokynů můžete usměrnit Copilot při řešení problémů s vývojem aplikací.

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.

Úlohy AI ve službě Azure HorizonDB

Když jste připojení ke clusteru HorizonDB, Můžete použít Copilot k vytváření funkcí AI služby HorizonDB – pgvector, pg_diskann (s rozšířeným filtrováním) a funkcí azure_ai AI založených na AI Model Management (limited Preview) nebo vlastních nasazeních Microsoft Foundry.

@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.

Horizontální navýšení kapacity čtení

Když jste připojeni ke koncovému serveru reader clusteru HorizonDB, můžete požádat Copilot, aby navrhl úlohy pouze pro čtení, které využívají vyrovnávané repliky s vysokou dostupností:

@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.

Vyčištění

Pokud chcete zajistit bezproblémové prostředí, vyčistěte všechny dočasné prostředky nebo konfigurace, které jste vytvořili během tohoto rychlého startu. Příklad:

  • Odpojte se od databáze PostgreSQL v editoru Visual Studio Code.
  • Odstraňte všechny testovací databáze, tabulky nebo indexy (včetně indexů pg_diskann), které jste během relace vytvořili.
  • Zavřete všechna otevřená připojení, abyste se vyhnuli zbytečnému využití prostředků.

Názory a podpora

V případě chyb, žádostí o funkce a problémů použijte integrovaný nástroj pro zpětnou vazbu v editoru Visual Studio Code. Tuto zpětnou vazbu můžete dokončit prostřednictvím nabídky nápovědy editoru Visual Studio Code nebo palety příkazů PGSQL.

  • Nabídka Nápověda
    • Přejít na Nápověda > Nahlásit problém
  • Paleta příkazů
    • Otevřete paletu příkazů pomocí Ctrl + Shift + P a spusťte: PGSQL: Report Issue