O que é a extensão PostgreSQL para Visual Studio Code? (Pré-visualização)

A extensão PostgreSQL para Visual Studio Code simplifica a gestão e desenvolvimento de bases de dados PostgreSQL. Pode ligar-se a bases de dados PostgreSQL, escrever e executar consultas, e gerir objetos de base de dados sem sair do Visual Studio Code.

A extensão integra-se com os serviços PostgreSQL geridos pelo Azure, incluindo:

  • Azure HorizonDB - um serviço PostgreSQL nativo da cloud, construído para cargas de trabalho empresariais de nível 1. O HorizonDB apresenta uma arquitetura de armazenamento/computação desagregada, commits de baixa latência, failover rápido, escalabilidade de leitura balanceada por carga em réplicas HA legíveis e integração profunda com IA.

A mesma extensão funciona contra ambos os serviços. Quando o comportamento difere (por exemplo, nos pontos finais de ligação ou nos métodos de autenticação suportados), isso é assinalado nas secções que se seguem.

Como instalar a extensão

Pode instalar a extensão PostgreSQL diretamente a partir do Extension Marketplace no Visual Studio Code. Siga estes passos:

  1. Abra a vista de Extensões em Visual Studio Code selecionando o ícone Extensões na Barra de Atividades ou usando o comando View: Extensions.
  2. Pesquise por PostgreSQL no Marketplace de Extensões.
  3. Selecione a extensão PostgreSQL criada pela Microsoft e selecione Instalar.

Quando instala a extensão, aparece um ícone de elefante a representar a página do PostgreSQL na barra lateral do Visual Studio Code.

Features

A extensão PostgreSQL para Visual Studio Code fornece as seguintes funcionalidades para o Azure HorizonDB.

Gestor de Ligações

O Gestor de Ligações simplifica a conexão com bancos de dados PostgreSQL locais e hospedados na nuvem. As principais funcionalidades incluem:

  • Suporte para vários perfis de ligação, para que possa estabelecer ligação a várias instâncias do PostgreSQL e geri-las lado a lado, incluindo combinações de clusters do Azure HorizonDB.
  • Análise da cadeia de ligação para uma conectividade sem falhas, quer esteja a ligar-se a uma base de dados local, quer a um cluster Azure HorizonDB.
  • Integração com o Azure HorizonDB para navegação direta e filtragem de instâncias por subscrição, grupo de recursos, servidor/cluster e base de dados.

Pontos finais de ligação do Azure HorizonDB

O Azure HorizonDB expõe dois endpoints, que pode adicionar como perfis de ligação separados na extensão:

  • Endpoint de leitura/escrita - Liga-se ao primário, que aceita tanto transações de leitura como de escrita. Utilize este endpoint para operações de escrita da aplicação, alterações ao esquema e qualquer carga de trabalho de leitura que exija os dados confirmados mais recentes. O endpoint está listado na página do cluster Overview e na página Replicas no portal Azure.
  • Ponto final de leitura - Equilibra automaticamente a carga das ligações só de leitura por todas as réplicas legíveis de alta disponibilidade no cluster. Use este endpoint para cargas de trabalho escalonadas de leitura, relatórios e análises. Atualmente, são suportadas até quatro réplicas HA legíveis (aumentando para 8), cada uma com tamanho idêntico ao primário.

Um padrão típico é guardar dois perfis no Gestor de Ligações – um apontado para o endpoint de leitura/escrita e outro para o endpoint do leitor – e alternar entre eles no Object Explorer consoante a tarefa em questão.

Object Explorer

O Object Explorer melhorado proporciona uma visão hierárquica dos objetos da base de dados, facilitando a navegação e gestão de esquemas, tabelas, vistas e funções. Características notáveis incluem:

  • Opções avançadas de filtragem para localizar rapidamente objetos específicos.
  • Recursos para criar, modificar e excluir objetos de banco de dados, como tabelas, exibições e procedimentos armazenados.
  • Visualização de esquemas e relacionamentos de banco de dados para navegação simplificada.
  • Para Azure HorizonDB, pode inspecionar as 55+ extensões permitidas disponíveis no cluster através da vista de catálogo pg_available_extensions diretamente a partir do Editor do Power Query.

Editor do Power Query

O Editor de Consultas melhora a experiência de desenho e execução de consultas com:

  • IntelliSense sensível ao contexto para preenchimento automático de palavras-chave SQL, nomes de tabelas e funções.
  • Realce de sintaxe e formatação automática para melhor legibilidade da consulta.
  • Rastreio do histórico de consultas, para poderes reutilizar consultas já executadas.

Visualizador de Resultados

O Visualizador de Resultados permite-lhe interagir com os resultados das consultas através de funcionalidades como:

  • Exportação de resultados para os formatos CSV, JSON ou Excel.
  • Opções de pesquisa, filtragem e classificação para analisar dados de forma eficiente.
  • Visualizações de dados persistentes para manter o contexto enquanto navega entre guias.

Visualização de Esquemas

O Visualizador de Esquemas oferece-lhe uma visão interativa, baseada em diagramas, da estrutura da sua base de dados sem precisar de escrever SQL. Clique com o botão direito numa base de dados (ou qualquer objeto por baixo) no Object Explorer e selecione Visualizar Esquema para iniciar o visualizador.

As capacidades-chave incluem:

  • Vista completa da tabela - Cada tabela é renderizada como um cartão mostrando as suas colunas e tipos de dados.
  • Linhas de relação - As relações de chave estrangeira entre tabelas são desenhadas como linhas de ligação, para que possa ver de relance como o seu modelo de dados se encaixa.
  • Organização baseada em esquemas - As tabelas são agrupadas pelo seu esquema pai (por exemplo, public, hr, ecom), facilitando a navegação em grandes bases de dados.
  • Mostrar / esconder por esquema - Ative ou desative esquemas inteiros para focar apenas nas partes do modelo que lhe interessa, e para manter os diagramas legíveis em grandes bases de dados.
  • Panorâmica e zoom - Navegue por diagramas de grandes dimensões com os controlos padrão de panorâmica, zoom e ajuste ao ecrã.

A Visualização de Esquemas funciona contra qualquer base de dados conectada, incluindo clusters locais PostgreSQL e Azure HorizonDB.

Visualização de Grafos Apache AGE

O Apache AGE Graph Visualizer permite executar consultas Apache AGE Cypher e explorar os resultados como um grafo interativo de nós e arestas. A extensão deteta automaticamente resultados de consultas de gráfico e renderiza-os num explorador visual com indicadores por nó, controlos de zoom e navegação, suporte para exportação e estilo compatível com o tema.

A extensão age está incluída na lista de permissões por predefinição no Azure HorizonDB, pelo que as cargas de trabalho de grafos podem ser executadas num cluster do HorizonDB sem configuração adicional. Os mesmos requisitos aplicam-se quando cria consultas Cypher no HorizonDB:

  • Devolva objetos completos, não propriedades escalares - O visualizador de grafos precisa de objetos completos de vértice e aresta. Consultas que extraem propriedades escalares (RETURN p.name, p.title) devolvem valores de texto simples e não são renderizadas no visualizador. Em vez disso, devolve os objetos completos e nomeia a variável de relação:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • Definir disp_label para texto significativo de nó - Sem disp_label, os nós apresentam IDs internos. Defina esta propriedade para que o visualizador mostre etiquetas úteis:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r:BOUGHT_TOGETHER]->(b:Product)
        SET a.disp_label = a.title
        SET b.disp_label = b.title
        RETURN a, r, b
    $$) AS (a agtype, r agtype, b agtype);
    
  • Corresponder colunas de saída a objetos devolvidos - A cláusula wrapper AS (...) deve ter uma coluna por objeto devolvido. Para consultas com vários saltos, inclua todos os nós e arestas intermédios:

    SELECT * FROM cypher('my_graph', $$
        MATCH (a:Product)-[r1:BOUGHT_TOGETHER]->(mid:Product)-[r2:BOUGHT_TOGETHER]->(b:Product)
        RETURN a, r1, mid, r2, b
    $$) AS (a agtype, r1 agtype, mid agtype, r2 agtype, b agtype);
    

Integração com IA (Azure HorizonDB)

Quando ligado a um cluster Azure HorizonDB, a extensão oferece-lhe uma superfície de autoria de primeira classe para as capacidades de IA do HorizonDB, que são expostas como extensões e funções padrão do PostgreSQL:

  • pgvector
    • Operadores de tipo de dado vetorial e similaridade.
  • pg_diskann
    • Índice vetorial de alto desempenho com Filtragem Avançada, que avalia WHERE os predicados durante a travessia de grafos vetoriais, pelo que as consultas de similaridade filtradas retornam de forma mais rápida e consistente.
  • azure_ai
    • Funções de IA como azure_ai.generate(), azure_ai.is_true(), azure_ai.extract(), e azure_openai.create_embeddings().
  • Gestão de Modelos de IA (pré-visualização limitada)
    • Quando ativado no cluster, o HorizonDB provisiona automaticamente um modelo de chat predefinido (gpt-5) e um modelo de embedding predefinido (text-embedding-3-small) através Microsoft Foundry, instala e configura azure_ai, e liga as Funções de IA a esses modelos geridos – sem necessidade de manipulação manual de chaves. Também pode registar as suas próprias implementações no Microsoft Foundry (Bring Your Own Model) e chamá-las por alias a partir das mesmas Funções de IA.

Pode criar e executar estas cargas de trabalho de IA diretamente a partir do Editor do Power Query, e o Visualizador de Resultados renderiza a saída vetorial e JSONB em linha.

Pipelines e Fluxos de Trabalho

Quando está ligada a um cluster do Azure HorizonDB com pipelines de IA ou pg_durable fluxos de trabalho, a extensão disponibiliza uma vista Pipelines e Fluxos de trabalho para consultar o histórico de execução e monitorizar o estado das execuções.

Acede clicando com o botão direito na sua base de dados e selecionando Pipelines & Workflows. Verá dois separadores:

  • Pipelines de IA: Veja definições de pipelines, inspecione execuções e acompanhe gráficos de execução com tipos de passos codificados por cores (azul para fonte/sumidor, verde para processamento, rosa para chamadas externas). Use isto para verificar o comportamento do pipeline e verificar o estado da execução, IDs de execução, horários de início e duração.
  • Fluxos de trabalho: Inspecione pg_durable instâncias de fluxo de trabalho com separadores para gráficos, análise temporal e resultados. Navegue de uma execução de workflow até à definição relacionada do pipeline para comparação e resolução de problemas.

Esta vista elimina a necessidade de alternar entre consultas SQL e o seu editor, o que facilita a monitorização de cargas de trabalho de IA de longa duração e pg_durable orquestrações.

Integração com o GitHub Copilot

Esta extensão integra-se com o GitHub Copilot para oferecer assistência orientada por IA adaptada ao desenvolvimento do PostgreSQL. Com comandos como @pgsql, pode consultar a sua base de dados, otimizar o seu esquema e pedir Copilot para executar operações SQL específicas contra um cluster Azure HorizonDB. Copilot capta o contexto da ligação em tempo real – incluindo extensões instaladas no destino – por isso as sugestões para uma ligação HorizonDB estão cientes de pgvector, pg_diskann, azure_ai e age.

Sistemas operativos suportados

A extensão PostgreSQL funciona com os seguintes sistemas operativos:

  • Windows
  • macOS
  • Linux

A extensão suporta várias distribuições Linux, incluindo Ubuntu, Fedora e Red Hat Enterprise Linux.

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