Início Rápido: Configurar GitHub Copilot para a extensão PostgreSQL em Visual Studio Code (versão prévia)

A extensão PostgreSQL para o Visual Studio Code inclui integração com o GitHub Copilot, aprimorando seus fluxos de trabalho de banco de dados com desenvolvimento assistido por IA. Depois de se conectar a um banco de dados PostgreSQL, o Copilot acessa informações contextuais da sua conexão ativa. Esse acesso permite que o participante do @pgsql Copilot Chat gere consultas e insights de SQL precisos e com reconhecimento de esquema, simplificando o desenvolvimento e minimizando a alternância de contexto dentro de Visual Studio Code.

O @pgsql participante trabalha em qualquer banco de dados ao qual a extensão pode se conectar, incluindo:

  • Azure HorizonDB clusters.

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

Pré-requisitos

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

Instalar extensões do GitHub Copilot e do GitHub Copilot Chat

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

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

Acessar o GitHub com o Visual Studio Code

  1. Verifique se você tem uma conta GitHub e uma assinatura de GitHub Copilot ativa:
  2. No Visual Studio Code, selecione o ícone Account e escolha Fazer login com o GitHub para usar o GitHub Copilot.

Introdução ao GitHub Copilot

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

  1. Clique com o botão direito do mouse em um banco de dados PostgreSQL no Pesquisador de Objetos e selecione Chat com este banco de dados. Isso funciona para qualquer conexão – PostgreSQL local ou Azure HorizonDB.
  2. Se solicitado, selecione Permitir habilitar o GitHub Copilot para acessar o contexto de conexão de banco de dados.
  3. Quando a interface de chat do Copilot for aberta, comece a fazer perguntas usando o @pgsql prefixo para especificar que você deseja interagir com o banco de dados PostgreSQL.

Experimente um prompt como:

@pgsql tell me about the tables in the HR schema

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

Conecte-se ao endpoint correto do HorizonDB

Como um cluster do Azure HorizonDB expõe dois endpoints, a conexão em que você inicia a conversa determina em qual endpoint o SQL gerado pelo Copilot será executado:

  • Ponto de extremidade de leitura/gravação – Use esta conexão quando você quiser que o Copilot esboce, modifique ou execute instruções que alterem os dados ou o esquema, ou que precisem ler o estado confirmado mais atual.
  • Ponto de extremidade de leitura – Use esta conexão quando você quiser que o Copilot esboce e execute consultas somente leitura que usufruam a expansão com balanceamento de carga entre réplicas de HA (por exemplo, análises exploratórias ou solicitações de relatórios).

Se o Copilot gerar uma instrução de escrita enquanto você estiver conectado ao endpoint de leitura, alterne a conexão ativa para o endpoint de leitura/gravação antes de aprovar a execução.

Usar recursos de leitura e gravação

A integração GitHub Copilot para a extensão PostgreSQL no Visual Studio Code dá suporte a operações de leitura e gravação. Você pode consultar dados, modificar esquemas e atualizar registros diretamente do editor com sugestões de IA que levam em conta o contexto de conexão dinâmica.

Note

A integração de Copilot Chat do GitHub para PostgreSQL pode fazer alterações no banco de dados. Use esse recurso com cuidado, especialmente em ambientes de preparo e produção. Sempre examine o código SQL gerado antes de executá-lo e considere testá-lo primeiro em um ambiente seguro. No Azure HorizonDB, verifique também se as operações de gravação são direcionadas para o ponto de extremidade de leitura/gravação – o ponto de extremidade de leitor é somente leitura.

Experimente 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 de 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, Copilot pede confirmação:

@pgsql Yes, I confirm

Usar as opções do menu de contexto

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

Outras ideias e receitas de solicitação

As seções a seguir mostram exemplos de prompts conceituais que você pode usar ou modificar para se adequar ao contexto do seu banco de dados e ao seu ambiente de desenvolvimento.

Otimização de consultas

Use esses prompts para orientar o Copilot no endereçamento de desafios específicos de otimização de consulta.

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 esses prompts para orientar o Copilot no endereçamento 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 do aplicativo

Use esses prompts para orientar o Copilot no endereçamento dos desafios de desenvolvimento de aplicativos.

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 você estiver conectado a um cluster HorizonDB, você pode usar Copilot para se basear nos recursos de IA do HorizonDB – pgvector, pg_diskann (com Filtragem Avançada) e as Funções de IA azure_ai apoiadas pelo gerenciamento de modelos AI (versão prévia limitada) ou suas próprias implantações do 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.

Escala de leitura

Quando conectado ao ponto de extremidade de leitor de um cluster do HorizonDB, você pode pedir para o Copilot esboçar cargas de trabalho somente leitura que usufruam réplicas de alta disponibilidade (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 tranquila, limpe todos os recursos temporários ou configurações que você criou durante este início rápido. Por exemplo:

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

Feedback e suporte

Para bugs, solicitações de recursos e problemas, use a ferramenta de comentários interna no Visual Studio Code. Você pode concluir esses comentários por meio do menu ajuda do Visual Studio Code ou da paleta de comandos PGSQL.

  • Menu Ajuda
    • Vá para Ajuda Relatar Problema>
  • Paleta de comandos
    • Abra a Paleta de Comandos com Ctrl + Shift + P e execute: PGSQL: Report Issue