Início Rápido: Configurar o GitHub Copilot para a extensão PostgreSQL no Visual Studio Code (Pré-visualização)

A extensão PostgreSQL para Visual Studio Code inclui integração com GitHub Copilot, melhorando os fluxos de trabalho da sua base de dados com desenvolvimento assistido por IA. Uma vez ligado a uma base de dados PostgreSQL, o Copilot acede à informação contextual da sua ligação em tempo real. Este acesso permite ao participante do Copilot Chat @pgsql gerar consultas SQL e informações precisas, tendo em conta o esquema, simplificando o desenvolvimento e minimizando a mudança de contexto no Visual Studio Code.

O @pgsql participante trabalha contra qualquer base de dados a que a extensão possa ligar, incluindo:

  • Azure clusters HorizonDB.

Quando ligado a um cluster HorizonDB, Copilot está ciente das extensões específicas do HorizonDB instaladas na base de dados (como pgvector, pg_diskann, azure_ai e age) e pode gerar prompts e SQL que os aproveitam.

Pré-requisitos

Antes de começar, verifique se você tem as ferramentas e os recursos adequados baixados e instalados.

Instale as extensões GitHub Copilot e GitHub Copilot Chat

Se você ainda não tiver a extensão GitHub Copilot instalada no Visual Studio Code:

  1. Selecione o ícone de Extensões no Visual Studio Code, procure por GitHub Copilot e selecione Instalar.
  2. A extensão GitHub Copilot Chat é instalada automaticamente junto com o GitHub Copilot.

Iniciar sessão no GitHub através do Visual Studio Code

  1. Certifica-te de que tens uma conta no GitHub e uma subscrição ativa do GitHub Copilot:
  2. No Visual Studio Code, selecione o ícone Account e escolha Iniciar sessão com GitHub para usar GitHub Copilot.

Comece com o GitHub Copilot

Siga as etapas para começar a usar o GitHub Copilot com a extensão PostgreSQL Visual Studio Code.

  1. Clique com o botão direito numa base de dados PostgreSQL no Object Explorer e selecione Chat com esta base de dados. Isto funciona para qualquer ligação - PostgreSQL local ou Azure HorizonDB.
  2. Se for solicitado, selecione Permitir para ativar o GitHub Copilot para aceder ao contexto da ligação à base de dados.
  3. Quando a interface de chat do Copilot abrir, comece a fazer perguntas usando o @pgsql prefixo para especificar que pretende interagir com a base de dados PostgreSQL.

Tente um prompt como:

@pgsql tell me about the tables in the HR schema

O Copilot responde com uma descrição detalhada das tabelas do seu esquema.

Liga-te ao endpoint HorizonDB correto

Como um cluster Azure HorizonDB expõe dois endpoints, a ligação onde começas a conversar determina contra qual endpoint o SQL gerado pelo Copilot corre:

  • Read/write endpoint - Utilize esta ligação quando quiser que o Copilot redija, modifique ou execute instruções que alterem dados ou o esquema da base de dados, ou que tenham de ler o estado mais recente já confirmado.
  • Reader endpoint - Utilize esta ligação quando quiser que o Copilot redija e execute consultas só de leitura que beneficiem de expansão horizontal com balanceamento de carga entre réplicas HA (por exemplo, análises exploratórias ou pedidos de relatórios).

Se o Copilot gerar uma instrução de escrita enquanto estiver conectado ao endpoint de leitura, altere a ligação ativa para o endpoint de leitura/escrita antes de aprovar a execução.

Use as capacidades de leitura e escrita

A integração do GitHub Copilot para a extensão PostgreSQL no Visual Studio Code suporta tanto operações de leitura como de escrita. Pode consultar dados, modificar esquemas e atualizar registos diretamente do editor com sugestões baseadas em IA que tenham em conta o contexto da ligação em tempo real.

Note

A integração do GitHub Copilot Chat para PostgreSQL pode fazer alterações à sua base de dados. Use esta funcionalidade com cautela, especialmente em ambientes de encenação e produção. Sempre revise o código SQL gerado antes de executá-lo e considere testá-lo em um ambiente seguro primeiro. No Azure HorizonDB, assegure-se também que as operações de escrita têm como alvo o endpoint read/write - o endpoint do leitor é apenas de leitura.

Experimenta um prompt mais avançado:

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

O Copilot pode responder com sugestões SQL e pedir permissão para fazer alterações.

Para aprovar a execução:

@pgsql Yes, please make the JSONB column for me

Em seguida, o Copilot pede confirmação:

@pgsql Yes, I confirm

Usar opções do menu de contexto

Pode selecionar código SQL no editor e clicar com o botão direito para aceder a opções do menu contextual do GitHub Copilot como Explicar a Consulta, Reescrever a Consulta ou Analisar o Desempenho da Consulta. No HorizonDB, as explicações e sugestões de reescrita também têm em conta índices específicos do HorizonDB (como pg_diskann índices vetoriais) quando estão presentes.

Outras ideias e modelos de prompts

As secções seguintes mostram prompts conceptuais que pode experimentar ou modificar para se adaptarem ao contexto da sua base de dados e ao ambiente de desenvolvimento.

Otimização de consultas

Use estes prompts para orientar o Copilot na resolução de desafios específicos de otimização de consultas.

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

Otimização do desempenho

Use estes prompts para orientar o Copilot na resolução de desafios específicos de otimização de desempenho.

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?

Desenvolvimento de aplicações

Use estes prompts para orientar o Copilot na resolução dos desafios do desenvolvimento de aplicações.

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.

Cargas de trabalho de IA no Azure HorizonDB

Quando está ligado a um cluster HorizonDB, pode usar Copilot para desenvolver as capacidades de IA do HorizonDB - pgvector, pg_diskann (com Filtragem Avançada) e as funções de IA azure_ai apoiadas por AI Model Management (pré-visualização limitada) ou pelas suas próprias implementações 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.

Ler sobre a expansão horizontal

Quando estiver ligado ao reader endpoint de um cluster HorizonDB, pode pedir ao Copilot que redija cargas de trabalho só de leitura que tirem partido de réplicas HA com balanceamento de carga:

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

Limpeza

Para garantir uma experiência fluida, limpe quaisquer recursos ou configurações temporárias que tenha criado durante este quickstart. Por exemplo:

  • Desconecte-se do banco de dados PostgreSQL no Visual Studio Code.
  • Remova quaisquer bases de dados, tabelas ou índices de teste (incluindo quaisquer pg_diskann índices) que tenha criado durante a sessão.
  • Feche todas as conexões abertas para evitar o uso desnecessário de recursos.

Comentários e suporte

Para bugs, solicitações de recursos e problemas, use a ferramenta de comentários interna no Visual Studio Code. Pode completar este feedback através do menu de Ajuda do Visual Studio Code ou da paleta de comandos PGSQL.

  • Menu de ajuda
    • Ir para Ajuda > Comunicar Problema
  • Paleta de comandos
    • Abra a Paleta de Comandos com Ctrl + Shift + P e execute: PGSQL: Report Issue