PostgreSQL no VS Code: como usar a extensão com Copilot

Trabalhar com PostgreSQL no VS Code deixou de exigir uma segunda ferramenta aberta ao lado do editor. A extensão oficial da Microsoft reúne conexão, exploração de objetos, escrita de SQL, planos de execução e integração com o GitHub Copilot no mesmo lugar onde o código da aplicação já vive.
Este artigo parte da série PostgreSQL Like a Pro, publicada pela Microsoft em outubro de 2026, e aprofunda cada etapa com base na documentação oficial. Ao final, você saberá conectar, consultar, entender um banco herdado e investigar problemas de performance sem sair do editor.
O que é a extensão PostgreSQL no VS Code
A extensão se chama PostgreSQL, tem o identificador ms-ossdata.vscode-pgsql e é publicada pela própria Microsoft. Ela entrou em preview público em maio de 2025 e chegou à disponibilidade geral em novembro de 2025.
Na prática, ela transforma o VS Code em uma IDE completa para PostgreSQL. Você conecta servidores locais, on-premises ou na nuvem, navega pelos objetos, escreve consultas com IntelliSense e visualiza planos e esquemas.
Além disso, a extensão funciona no Windows, no macOS e no Linux. Ela também roda no Cursor, embora alguns recursos de IA mudem de nome ou de entrada nesse editor.
O ponto central é reduzir a troca de contexto.
Antes, conferir uma tabela significava abrir o pgAdmin ou o terminal, encontrar a informação e voltar para o código. Agora, o PostgreSQL no VS Code fica a um clique da aplicação.
Como conectar o PostgreSQL no VS Code
Antes de escrever qualquer consulta, você precisa saber o que existe no banco. Por isso, o primeiro passo é instalar a extensão e criar uma conexão.
Abra a visão de extensões com Ctrl+Shift+X, pesquise por postgresql e instale a extensão publicada pela Microsoft. Em seguida, um ícone de elefante aparece na Activity Bar e abre a visão do PostgreSQL.
Caso você ainda não tenha um servidor, a própria extensão consegue criar um PostgreSQL local em um container Docker. Ela também provisiona um Azure Database for PostgreSQL flexible server por meio de um assistente guiado.
Perfis de conexão e Microsoft Entra ID
Para conectar o PostgreSQL no VS Code, o diálogo de conexão oferece três modos de entrada. Nele, o modo Parameters pede host, porta, banco e usuário separadamente, enquanto o modo Connection String aceita a string completa.
O terceiro modo, Browse Azure, lista suas assinaturas, grupos de recursos e servidores. Assim, você escolhe o banco sem copiar endereço nenhum do portal.
Quanto à autenticação, a extensão aceita senha, Microsoft Entra ID e AWS IAM para RDS e Aurora. Quando você salva a senha, a extensão a guarda no gerenciador de credenciais do sistema operacional, nunca em texto puro nos arquivos de configuração.
Os perfis salvos aparecem na lista de conexões para reuso. Também é possível organizá-los em grupos com cores, o que ajuda a separar desenvolvimento, homologação e produção de forma visual.
Explorando objetos com o Object Explorer
Depois de conectar o PostgreSQL ao VS Code, expanda o servidor, o banco e os esquemas no Object Explorer. Ali aparecem tabelas, views, funções, sequências, tipos, extensões e roles.
A recomendação da Microsoft é simples: comece por uma única tabela que a sua aplicação usa. Você não precisa entender o banco inteiro para dar o próximo passo.
Além disso, o explorador tem uma busca por nome e gera scripts com o botão direito. Com isso, um SELECT, um CREATE ou um ALTER de qualquer objeto abre direto no editor de consultas.
Escrevendo SQL com o PostgreSQL no VS Code
Você já sabe o que a aplicação precisa. Agora, falta uma consulta que devolva os dados certos e que você consiga explicar para outra pessoa do time.
O editor de consultas do PostgreSQL no VS Code traz IntelliSense com sugestões de palavras-chave, nomes de tabelas, colunas, funções e cláusulas de join. Ele também oferece snippets, histórico de consultas e execução do arquivo inteiro ou apenas da instrução sob o cursor.
Os resultados aparecem em um painel abaixo do editor. Nesse painel, você ordena, filtra, exporta para CSV, JSON ou Excel e ainda transforma o resultado em gráfico de linha, barra, pizza ou dispersão.
Um exemplo: receita por cliente no trimestre
O artigo original propõe um cenário bem comum: descobrir quais clientes geraram mais receita em um trimestre. Para isso, você junta clientes e pagamentos, filtra por data, agrupa e ordena.
-- Primeira versão: junta tudo e agrega depois
SELECT c.customer_id,
c.first_name,
c.last_name,
SUM(p.amount) AS total_revenue
FROM customers AS c
JOIN payments AS p ON p.customer_id = c.customer_id
WHERE p.payment_date >= DATE '2026-07-01'
AND p.payment_date < DATE '2026-10-01'
GROUP BY c.customer_id, c.first_name, c.last_name
ORDER BY total_revenue DESC
LIMIT 10;
Essa consulta funciona e é fácil de ler. No entanto, em tabelas grandes, o join acontece antes da agregação, e o banco pode processar muito mais linhas do que o necessário.
Uma reescrita possível agrega os pagamentos primeiro e só depois junta com os clientes. O texto da Microsoft faz questão de dizer que isso é uma hipótese a investigar, não uma regra para aplicar em todo lugar.
-- Segunda versão: agrega os pagamentos antes do join
WITH quarter_revenue AS (
SELECT customer_id,
SUM(amount) AS total_revenue
FROM payments
WHERE payment_date >= DATE '2026-07-01'
AND payment_date < DATE '2026-10-01'
GROUP BY customer_id
)
SELECT c.customer_id,
c.first_name,
c.last_name,
qr.total_revenue
FROM quarter_revenue AS qr
JOIN customers AS c ON c.customer_id = qr.customer_id
ORDER BY qr.total_revenue DESC
LIMIT 10;
Por fim, a regra mais importante dessa etapa: confira os resultados, e não só o tempo de execução. Uma consulta mais rápida ainda precisa responder à pergunta certa, então compare as duas saídas linha a linha antes de trocar uma pela outra.
Lendo o plano de execução do PostgreSQL no VS Code
Para comparar as duas versões com dados, use o Query Plan Visualizer do PostgreSQL no VS Code. Selecione a consulta e clique em Visualize Query Plan na barra do editor.
Em seguida, a extensão pergunta o formato e as opções do EXPLAIN. JSON funciona melhor nas visões gráficas, enquanto ANALYZE, BUFFERS e TIMING acrescentam números reais de execução.
Atenção, porém: ANALYZE executa a consulta de verdade. Por isso, a extensão pede confirmação antes de rodar um INSERT, UPDATE, DELETE ou TRUNCATE nesse modo.
O visualizador oferece quatro visões. A Tree View desenha os nós, a Table View permite ordenar e buscar, a Icicle View mostra onde o custo se concentra e a Source View guarda a saída original.
Uma dica da documentação ajuda muito na leitura: compare as linhas estimadas com as linhas reais em cada nó. Quando os dois números divergem bastante, as estatísticas da tabela costumam estar desatualizadas.
Copilot e o PostgreSQL no VS Code
A integração com IA é o que mais diferencia essa extensão de um cliente SQL tradicional. Ela aparece em três superfícies, cada uma com um propósito diferente.
A primeira é o participante @pgsql no Copilot Chat, que só existe no VS Code e conversa com o PostgreSQL conectado. Ele responde perguntas usando o contexto vivo do banco, como tabelas, colunas e relacionamentos.
A segunda são as AI Query Actions, um submenu no clique direito do editor. Ali ficam Explain Query, Rewrite Query e Analyze Query Performance, que trabalham sobre o SQL selecionado.
A terceira é o Agent mode. Você clica com o botão direito no banco, escolhe Connect AI e o agente passa a encadear ferramentas: conecta, inspeciona o esquema, roda consultas de leitura e abre scripts para revisão.
Além disso, a extensão registra um servidor MCP com essas mesmas ferramentas. Assim, outros hosts compatíveis também conseguem consultar suas conexões de forma programática.
Modos de acesso: leitura ou escrita
Dentro do PostgreSQL no VS Code, a configuração pgsql.copilot.accessMode define quanto poder o agente tem. No modo ro, ele só executa operações de leitura como SELECT, SHOW e EXPLAIN.
No modo rw, o agente também roda DML e DDL, sempre com confirmação explícita antes de executar. A documentação recomenda o ro para produção e ambientes compartilhados.
Essa separação importa porque o Copilot consegue, sim, alterar dados e esquemas. Portanto, revise todo SQL gerado antes de aprovar, e prefira testá-lo primeiro em um ambiente descartável.
Para enviar um plano já capturado ao Copilot, use o botão Analyze with Copilot no visualizador. A configuração pgsql.copilot.autoAttachQuery controla se o texto da consulta vai junto, e você pode escolher perguntar sempre, enviar sempre ou nunca enviar.
Entendendo um banco herdado com o PostgreSQL no VS Code
Qual tabela guarda o dado que você precisa e como ela se conecta ao resto da aplicação? Essas costumam ser as primeiras perguntas de quem herda um projeto.
A sugestão da Microsoft é começar amplo no Object Explorer. Procure nomes de esquemas, padrões de nomenclatura e tabelas ou views que combinem com a funcionalidade em que você está trabalhando.
Depois, abra o Schema Visualizer do PostgreSQL no VS Code clicando com o botão direito no banco e escolhendo Visualize Schema. Ele desenha cada tabela como um nó, lista colunas e tipos e liga as chaves estrangeiras com linhas.
Quando o banco tem muitos esquemas, a legenda atribui uma cor a cada um e permite esconder os que não interessam. Também existe a opção de abrir o visualizador direto em um esquema específico, o que evita um diagrama ilegível logo de cara.
Vale lembrar duas limitações. O visualizador mostra apenas tabelas e chaves estrangeiras, e ele não se atualiza sozinho depois de uma mudança, então use o botão Refresh.
Perguntas focadas ao Copilot
Com o contexto do PostgreSQL disponível no chat do VS Code, faça perguntas pequenas e objetivas. Em uma aplicação de locadora de filmes, por exemplo, três boas perguntas seriam: quais tabelas guardam atores e filmes, como elas se ligam e onde fica o status da locação.
Trate a resposta como ponto de partida, e não como mapa verificado. Em seguida, confira os objetos na árvore, revise as ligações no visualizador e rode uma consulta pequena de leitura para confirmar o caminho dos dados.
-- Confirma o caminho entre filme, cópia em estoque e locação
SELECT f.title,
r.rental_date,
r.return_date
FROM rentals AS r
JOIN inventory AS i ON i.inventory_id = r.inventory_id
JOIN films AS f ON f.film_id = i.film_id
ORDER BY r.rental_date DESC
LIMIT 5;
O conselho final da seção original resume bem a postura: faça uma pergunta de descoberta, valide contra o banco e só então faça a próxima. Dessa forma, um erro do modelo não contamina as etapas seguintes.
Investigando performance no PostgreSQL no VS Code
Quedas de conexão e latência crescente avisam que algo vai mal. Descobrir o motivo, porém, costuma exigir logs, métricas e uma linha do tempo montada à mão.
Antes de mudar qualquer coisa, a Microsoft sugere montar uma cadeia de evidências. Ela responde a quatro perguntas: o que mudou, quando mudou, qual carga de trabalho está envolvida e por que uma ação específica deveria ajudar.
Para os servidores no Azure, o Server Dashboard do PostgreSQL no VS Code ajuda a montar essa cadeia. Ele mostra CPU, memória, armazenamento, conexões e IOPS, além das abas Queries, Waits e Sessions com as consultas mais caras, os eventos de espera e os bloqueios.
Cada painel do dashboard tem um botão Ask Copilot. Com isso, você abre uma conversa já com aquele contexto em vez de copiar números para o chat.
Do índice recomendado à decisão revisada
O exemplo do artigo original envolve consultas repetidas de histórico de clientes em uma tabela grande de transações. Esse padrão pode levar a uma recomendação de índice composto.
No PostgreSQL no VS Code, o próximo passo, no entanto, não é simplesmente criar o índice. Primeiro, revise as métricas que sustentam a recomendação, o resultado esperado e o caminho de reversão.
-- Índice composto para buscas de histórico por cliente
CREATE INDEX CONCURRENTLY ix_transactions_customer_id_created_at
ON transactions (customer_id, created_at DESC);
-- Plano de reversão, caso o resultado não seja o esperado
DROP INDEX CONCURRENTLY ix_transactions_customer_id_created_at;
O uso de CONCURRENTLY evita bloquear escritas na tabela durante a criação. Inclusive, é o mesmo padrão que o ajuste autônomo do Azure Database for PostgreSQL usa nos scripts que recomenda.
Database Agent e o que ainda está por vir
O Database Agent reúne essas peças na experiência do Azure PostgreSQL exibida no VS Code, ao lado do restante da extensão. Ele relaciona sintomas, métricas e recomendações em um só lugar.
Contudo, o vídeo da série o apresenta como uma experiência ainda por chegar, com ações aplicadas manualmente. A remediação automática aparece como capacidade futura, então confira a disponibilidade e os requisitos do Azure antes de contar com ela.
Enquanto isso, a pergunta de controle continua valendo para qualquer mudança: você consegue explicar por que ela deve ajudar, como vai medir o resultado e o que fará se não funcionar?
Boas práticas de IA para o PostgreSQL no VS Code
As quatro etapas do artigo compartilham uma mesma disciplina. Por isso, vale reunir as recomendações em uma lista curta.
| Situação | Prática recomendada |
|---|---|
| Banco de produção ou compartilhado | Agent mode em ro |
| SQL gerado pelo Copilot | Revisar antes de executar e testar em ambiente descartável |
| Reescrita de consulta | Comparar resultados, não só o plano |
| Resposta sobre o esquema | Validar no Object Explorer e no visualizador |
| Recomendação de índice | Revisar métricas, resultado esperado e reversão |
Para quem desenvolve em .NET, o PostgreSQL no VS Code combina bem com o Entity Framework Core. Você gera as migrations no projeto e confere o resultado no banco sem trocar de janela, como no artigo Migrations com EF Core, .NET e PostgreSQL.
A Microsoft também mantém um repositório de exemplos da série em aka.ms/pg-pro-vs-code-repo. A documentação completa da extensão fica no Microsoft Learn.
Conclusão
O PostgreSQL no VS Code cobre o ciclo inteiro de trabalho com banco de dados dentro do editor. Você conecta, explora, escreve SQL, lê planos e investiga performance sem alternar entre ferramentas.
O Copilot acelera cada etapa, mas a tese da série é clara: a IA propõe e você verifica. Resultados conferidos, esquemas validados e mudanças com plano de reversão continuam sendo responsabilidade de quem desenvolve.
Para começar a usar o PostgreSQL no VS Code, siga o roteiro sugerido pela própria Microsoft. Explore uma tabela que a sua aplicação usa, escreva uma consulta de leitura e confirme que o resultado responde exatamente ao que você precisa.
FAQ
A extensão PostgreSQL para VS Code é gratuita?
Sim, a extensão é gratuita no Visual Studio Marketplace. Os recursos de IA, porém, exigem uma assinatura ativa do GitHub Copilot.
Preciso usar Azure para aproveitar a extensão?
Não, ela conecta a servidores locais, on-premises, em Docker ou em outras nuvens. Recursos como Browse Azure, métricas do dashboard e gestão do servidor são exclusivos do Azure.
O Copilot pode alterar dados do meu banco?
Pode, quando o modo de acesso está em rw, sempre com confirmação antes de executar. Em produção, mantenha o modo ro.
O participante @pgsql funciona no Cursor?
Não, o @pgsql existe apenas no VS Code. No Cursor, use o Connect AI para abrir o Agent mode ou o servidor MCP da extensão.
A extensão substitui o pgAdmin?
Para o dia a dia de desenvolvimento, ela cobre conexão, consultas, planos e esquemas. Tarefas administrativas específicas ainda podem pedir outras ferramentas.