Démarrage rapide : Configurer GitHub Copilot pour l’extension PostgreSQL dans Visual Studio Code (préversion)

L’extension PostgreSQL pour Visual Studio Code inclut GitHub Copilot intégration, améliorant vos flux de travail de base de données avec le développement assisté par l’IA. Une fois connecté à une base de données PostgreSQL, Copilot accède aux informations contextuelles à partir de votre connexion active. Cet accès permet au participant @pgsql Copilot Chat de générer des requêtes et des insights SQL précis et prenant en compte le schéma, en rationalisant le développement et en réduisant le basculement de contexte dans Visual Studio Code.

Le @pgsql participant travaille sur n’importe quelle base de données à laquelle l’extension peut se connecter, notamment :

  • Clusters Azure HorizonDB.

Lorsqu’elle est connectée à un cluster HorizonDB, Copilot connaît les extensions spécifiques à HorizonDB installées sur la base de données (telles que pgvector, pg_diskann, azure_ai et age) et peuvent générer des invites et SQL qui en tirent parti.

Prerequisites

Avant de commencer, vérifiez que vous disposez des outils et ressources appropriés téléchargés et installés.

Installer les extensions GitHub Copilot et GitHub Copilot Chat

Si l’extension GitHub Copilot n’est pas déjà installée dans Visual Studio Code :

  1. Sélectionnez l’icône Extensions dans Visual Studio Code, recherchez GitHub Copilot, puis sélectionnez Installer.
  2. L’extension GitHub Copilot Chat est automatiquement installée avec GitHub Copilot.

Se connecter à GitHub dans Visual Studio Code

  1. Vérifiez que vous disposez d’un compte GitHub et d’un abonnement actif GitHub Copilot :
  2. Dans Visual Studio Code, sélectionnez l’icône Account et choisissez Sign in with GitHub to use GitHub Copilot.

Bien démarrer avec GitHub Copilot

Suivez les étapes pour commencer à utiliser GitHub Copilot avec l’extension Visual Studio Code PostgreSQL.

  1. Cliquez avec le bouton droit sur une base de données PostgreSQL dans le Explorateur d'objets, puis sélectionnez Chat avec cette base de données. Cela fonctionne pour n’importe quelle connexion : PostgreSQL local ou Azure HorizonDB.
  2. Si vous y êtes invité, sélectionnez Autoriser pour permettre à GitHub Copilot d’accéder au contexte de connexion de la base de données.
  3. Lorsque l’interface de conversation Copilot s’ouvre, commencez à poser des questions à l’aide du @pgsql préfixe pour spécifier que vous souhaitez interagir avec la base de données PostgreSQL.

Essayez une requête comme celle-ci :

@pgsql tell me about the tables in the HR schema

Copilot répond avec une description détaillée des tables de votre schéma.

Se connecter au point de terminaison HorizonDB approprié

Étant donné qu’un cluster Azure HorizonDB expose deux points de terminaison, la connexion sur laquelle vous commencez à discuter détermine sur quel point de terminaison le code SQL généré par Copilot est exécuté :

  • point de terminaison Read/write : utilisez cette connexion lorsque vous souhaitez Copilot rédiger, modifier ou exécuter des instructions qui modifient des données ou un schéma, ou qui doivent lire l’état validé le plus récent.
  • Point de terminaison de lecture : utilisez cette connexion lorsque vous souhaitez que Copilot rédige et exécute des requêtes en lecture seule qui bénéficient d’une mise à l’échelle horizontale avec équilibrage de charge sur les réplicas de haute disponibilité (par exemple, pour l’analyse exploratoire ou les demandes de création de rapports).

Si Copilot génère une instruction d'écriture pendant que vous êtes connecté au point de terminaison du lecteur, basculez la connexion active vers le point de terminaison de lecture/écriture avant d'approuver l'exécution.

Utiliser des fonctionnalités de lecture et d’écriture

L’intégration GitHub Copilot pour l’extension PostgreSQL dans Visual Studio Code prend en charge les opérations de lecture et d’écriture. Vous pouvez interroger des données, modifier des schémas et mettre à jour des enregistrements directement à partir de l’éditeur avec des suggestions basées sur l’IA qui prennent en compte le contexte de connexion dynamique.

Note

L’intégration Copilot Chat GitHub pour PostgreSQL peut apporter des modifications à votre base de données. Utilisez cette fonctionnalité avec précaution, en particulier dans les environnements intermédiaires et de production. Passez toujours en revue le code SQL généré avant de l’exécuter et envisagez de le tester dans un environnement sécurisé en premier. Sur Azure HorizonDB, vérifiez également que les opérations d’écriture ciblent le point de terminaison read/write : le point de terminaison de lecteur est en lecture seule.

Essayez une requête plus avancée :

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

Copilot peut répondre avec des suggestions SQL et demander l’autorisation d’apporter des modifications.

Pour approuver l’exécution :

@pgsql Yes, please make the JSONB column for me

Copilot demande ensuite la confirmation :

@pgsql Yes, I confirm

Utiliser les options de menu contextuel

Vous pouvez sélectionner du code SQL dans l’éditeur et cliquer avec le bouton droit pour accéder aux options de menu contextuel De GitHub Copilot, telles que Expliquer la requête, réécrire la requête ou analyser les performances des requêtes. Sur HorizonDB, les explications et les suggestions de réécriture comptent également pour les index spécifiques à HorizonDB (tels que pg_diskann les index vectoriels) lorsqu’ils sont présents.

Autres idées et recettes de prompts

Les sections suivantes présentent des invites de concept que vous pouvez tester ou adapter en fonction du contexte de votre base de données et de votre environnement de développement.

Optimisation des requêtes

Utilisez ces requêtes pour guider Copilot en répondant aux défis spécifiques liés à l’optimisation des requêtes.

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

Optimisation des performances

Utilisez ces requêtes pour guider Copilot en répondant aux défis spécifiques liés à l’optimisation de la performance.

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?

Développement d’applications

Utilisez ces invites pour aider Copilot à résoudre les difficultés du développement d’applications.

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.

Charges de travail IA sur Azure HorizonDB

Lorsque vous êtes connecté à un cluster HorizonDB, vous pouvez utiliser Copilot pour créer les fonctionnalités d'IA d'HorizonDB - pgvector, pg_diskann (avec filtrage avancé) et les fonctions IA azure_ai sauvegardées par AI Model Management (préversion limitée) ou vos propres déploiements de 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.

Lecture du Scale-out

Lorsque vous êtes connecté au point de terminaison de lecture d’un cluster HorizonDB, vous pouvez demander à Copilot de rédiger des charges de travail en lecture seule qui tirent parti de réplicas en haute disponibilité avec équilibrage de charge :

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

Nettoyage

Pour garantir une expérience fluide, nettoyez les ressources ou configurations temporaires que vous avez créées pendant ce démarrage rapide. Par exemple:

  • Déconnectez-vous de la base de données PostgreSQL dans Visual Studio Code.
  • Supprimez toutes les bases de données de test, tables ou index (y compris les pg_diskann index) que vous avez créés pendant la session.
  • Fermez les connexions ouvertes pour éviter toute utilisation inutile des ressources.

Commentaires et support

Pour les bogues, les demandes de fonctionnalités et les problèmes, utilisez l’outil de commentaires intégré dans Visual Studio Code. Vous pouvez effectuer ces commentaires via le menu Aide de Visual Studio Code ou la palette de commandes PGSQL.

  • Menu Aide
    • Accéder à Aide > Signaler un problème
  • Palette de commandes
    • Ouvrez la palette de commandes avec Ctrl + Shift + P et exécutez : PGSQL: Report Issue