3 Punkte von GN⁺ 2025-05-24 | 1 Kommentare | Auf WhatsApp teilen
  • Diese Erweiterung vereinfacht das Schreiben von Abfragen und die Datenbankverwaltung mit KI-gestütztem IntelliSense und dem GitHub-Copilot-Agenten „@pgsql“
  • Unterstützt integrierte Sicherheits- und Cloud-Bereitstellungsverwaltung durch Entra-ID-Authentifizierung und die Anbindung an Azure Database for PostgreSQL
  • Legt den Fokus auf höhere Produktivität und Effizienz für Entwickler durch Schema-Visualisierung, Verwaltung des Abfrageverlaufs und kontextbezogenes IntelliSense
  • Minimiert Onboarding und Kontextwechselkosten durch mehrere Datenbankverbindungen, passwortlose Authentifizierung und eine intuitive UI

Einführung

  • Microsoft hat die Public Preview einer neuen PostgreSQL-Erweiterung für Visual Studio Code (im Folgenden VS Code) angekündigt
  • Die Erweiterung wurde entwickelt, damit sich PostgreSQL-Datenbankverwaltung und Entwickler-Workflows einfach in einer einzigen Umgebung erledigen lassen
  • Entwickler können Datenbankobjekte verwalten, Abfragen entwerfen und kontextbezogenes IntelliSense sowie Unterstützung durch den GitHub-Copilot-Agenten „@pgsql“ nutzen, ohne VS Code zu verlassen.

Herausforderungen für Entwickler und Lösungsansatz

  • Laut der Stack Overflow Developer Survey 2024 haben 41 % der Entwickler Schwierigkeiten durch Kontextwechsel
  • Der Stripe Developer Coefficient Report 2024 zeigt, dass bis zu 50 % der Entwicklungszeit für Debugging und Problemlösung aufgewendet werden
  • Ineffizienzen werden durch das Fehlen eines integrierten Erweiterungstools beeinflusst, das Datenbankverwaltung und Anwendungsentwicklung zusammenführt
  • Die neue Erweiterung vereint Postgres-Datenbanktools und @pgsql GitHub Copilot, sodass Entwicklung, Verwaltung und Debugging in einer einzigen Umgebung möglich sind
  • Unterstützt Sicherheit und zentrale Verwaltung durch Entra-ID-Authentifizierung und die enge Integration mit Azure Database for PostgreSQL

Hauptfunktionen

Schema-Visualisierung

  • Durch einen Rechtsklick auf einen Datenbankeintrag im Object Explorer lässt sich ein Schema über die Option „Visualize Schema“ visualisieren

Datenbankbewusster GitHub Copilot

  • Bietet KI-Unterstützung, die den PostgreSQL-Kontext innerhalb von VS Code erkennt
  • Vereinfacht Datenbankabfragen in natürlicher Sprache, Schema-Optimierung und SQL-Ausführung
  • Unterstützt KI-basierte Abfrageanalyse und -optimierung mit dem Befehl „@pgsql“ sowie Kontextmenüs wie „Rewrite Query“, „Explain Query“ und „Analyze Query Performance“
  • Bietet Echtzeit-Anleitung auf Expertenniveau sowie Funktionen für Sicherheit und Leistungsverbesserung während der Entwicklung

Copilot-Chat-Agentenmodus

  • Ein dialogbasierter intelligenter Chat-Agent (@pgsql) unterstützt nicht nur Frage und Antwort, sondern auch mehrstufige Aufgaben
  • Versteht den tatsächlichen Kontext des Workspaces und kann mit Erlaubnis auch Code schreiben und debuggen
  • Auch komplexe Aufgaben wie das Erstellen von Datenbanken oder das Aktivieren von Erweiterungen lassen sich per natürlicher Sprache anweisen
  • Für Änderungen an der Datenbank ist eine explizite Benutzerfreigabe erforderlich

Datenbankverbindung und -verwaltung

  • Einfache Verbindung zu lokalen und Cloud-basierten PostgreSQL-Instanzen
  • Mehrere Verbindungsprofile, Parsing von Verbindungszeichenfolgen und vereinfachte Einrichtung von Verbindungsinformationen
  • Azure-Database-for-PostgreSQL-Bereitstellungen können direkt durchsucht und gefiltert werden
  • Entra-ID-Integration erhöht die Sicherheit und unterstützt eine administratorzentrierte Verwaltung des Datenbankzugriffs

Passwortlose Authentifizierung und Sicherheit

  • Bietet passwortlose Authentifizierung mit Entra ID
    • Keine manuelle Anmeldung erforderlich, automatische Token-Aktualisierung wird unterstützt
    • Minimiert Authentifizierungs-Timeouts und gewährleistet Kontinuität während der Entwicklung
    • Kompatibel mit Sicherheitsstandards auf Enterprise-Niveau
    • Vorhandene Entra-ID-Anmeldedaten können verwendet werden
    • Keine separate Kontoverwaltung erforderlich

Datenbank-Explorer und Abfrageverlauf

  • Schema, Tabellen, Funktionen und andere Datenbankobjekte lassen sich strukturiert prüfen und verwalten
  • Unterstützt das Erstellen, Ändern und Löschen von Objekten
  • Durch die Verwaltung des Abfrageverlaufs lassen sich zuvor ausgeführte Abfragen leicht wiederverwenden

Abfragebearbeitung und kontextbezogenes IntelliSense

  • Unterstützt Autovervollständigung für SQL-Schlüsselwörter, Tabellennamen und Funktionsnamen sowie Syntax-Highlighting
  • Bietet automatische Abfrageformatierung, Verlaufsverwaltung und eine gut lesbare Bearbeitungsumgebung

Unterschiede und Stärken

  • Höhere Produktivität: Kürzere Arbeitszeiten und weniger Fehler durch kontextbezogenes IntelliSense, SQL-Formatierung usw.
  • Intelligente KI-Unterstützung: Mehrstufige Unterstützung durch einen datenbank- und workspacebewussten Copilot-Chat-Agenten
  • Schnelles Onboarding: Dank Verbindungsmanager können auch Einsteiger ihre Umgebung in wenigen Minuten einrichten
  • Sicherheit: Zentrale Zugriffskontrolle durch Entra ID und einfache Navigation von Azure-Bereitstellungen
  • Integriertes Toolset: Verwaltung von Datenbankobjekten, Ausführung von Abfragen und Instanzbereitstellung alles innerhalb von VS Code
  • Cloud-freundlich: Die tiefe Integration mit Azure Database for PostgreSQL vereinfacht den Betrieb von Cloud-Datenbanken

Erste Schritte

  • Im Extensions Marketplace von VS Code nach „PostgreSQL“ suchen und die Preview PostgreSQL extension (blaues Elefanten-Symbol) installieren
  • Die Erweiterungen GitHub Copilot und Copilot Chat sind erforderlich; über den Befehl @pgsql ist die Interaktion mit Copilot möglich

Feedback und weitere Pläne

  • Über das Feedback-Tool in VS Code können Nutzermeinungen und Probleme eingereicht werden
  • Die Standard-Preview-Lizenz soll künftig aktualisiert werden
  • Weitere Informationen und eine Einstiegsanleitung gibt es unter https://aka.ms/pg-vscode-docs

1 Kommentare

 
GN⁺ 2025-05-24
Hacker-News-Kommentare
  • Glückwunsch an das Team zum Launch. Ich wollte nur teilen, dass ich das letzte Woche in einer von Microsoft gesponserten Session tatsächlich als Erster live vorgeführt habe. Das Demo-Video gibt es hier. Außerdem gab es noch eine separate Session am MSFT-Stand, aber die Aufzeichnung wurde noch nicht hochgeladen. Stattdessen gibt es ein Repo, mit dem man alle Funktionen, die ich gezeigt habe, selbst nachmachen kann: hier. Falls Probleme auftreten, sagt dem Team bitte hier Bescheid.

  • Das Tool löst erneut ein zentrales Problem, das ich früher mit meinem eigenen npm-Paket „pgstrap“ angegangen bin. Es erzeugt die Datenbankstruktur in Form eines Verzeichnisses, sodass mein Datenbankschema von einem LLM genutzt werden kann und Änderungen an Tabellen in Code-Reviews klar sichtbar werden. Für jede Tabelle in meiner DB wird eine SQL-Datei erzeugt und nach Schema in Verzeichnissen organisiert. Das ist ein ähnliches Konzept wie Rails’ schema.rb. Ich frage mich, ob es besser ist, wenn der Editor die Datenbank versteht, oder wenn man den Kontext direkt in die Codebasis committet. Wenn weniger generierter Code bzw. weniger Artefakte entstehen, bleibt die Codebasis sauberer. Andererseits nutzt nicht jeder VS Code oder weiß, wie man diese Integration verwendet. Bei DB-Browser-GUIs gab es nie einen klaren Marktsieger. Durch den überwältigenden Marktanteil von VS Code könnte das aber zum Standard für DB-Inspektion direkt in der Entwicklungsumgebung werden. pgstrap-Link

    • Ich frage mich, ob es bei Web-Frameworks wirklich absoluter Standard ist, sowohl den aktuellen Zustand des Datenbankschemas als auch alle Migrationen in die Versionskontrolle aufzunehmen.
    • Sieht nach einem praktischen Tool aus, danke fürs Teilen. Gibt es außer Tabellen/Spalten/Indizes auch Trigger, Stored Procedures usw. aus? Viele Tools hören bei Tabellendefinitionen auf. Ich hätte gern mehr Werkzeuge, die mehr Funktionen der DB nutzen.
    • Ich verwende einen MCP-Server (und copilot/cline) mit genau einem Read-only-Login für meine DB.
  • Das Tool sieht auf den ersten Blick wirklich großartig aus. Es überrascht mich, dass Microsoft so viel Energie in ein Tool für Postgres statt für SQL Server steckt. Ich vermute, dass die Nachfrage nach Postgres einfach so groß ist.

    • Es gibt bereits eine Microsoft-SQL-Server-Erweiterung für VS Code, und das hier ist im Grunde ein ziemlich ähnlicher Klon davon. Als ich es ausprobiert habe, wirkten Menüs, Dialoge usw. insgesamt sehr ähnlich. Früher war Azure Data Studio (jetzt eingestellt) die Grundlage dieser Erweiterung. Link zur SQL-Server-Erweiterung
    • Aus der Sicht eines Microsoft-Developer-Evangelists kann ich sagen, dass sowohl das SQL-Server- als auch das PostgreSQL-Erweiterungsteam jeweils enorm viel Arbeit investieren. Ich habe an Usability-Tests und Bug Bashes beider Teams teilgenommen und dabei gesehen, wie viel Leidenschaft in entwicklerfreundliche Tools fließt. Gebt den Teams bitte unbedingt Feedback, was ihr braucht. Für SQL-Server-News folgt Carlos Robles, für PostgreSQL-News Joshua Johnson.
    • Ich vermute, das liegt daran, dass das MSSQL-Tool über ADS kontinuierlich gepflegt wurde und qualitativ bereits auf hohem Niveau war. Azure Data Studio wird nun eingestellt, und bei der PostgreSQL-Erweiterung für VS Code gab es in den letzten sechs Jahren keine nennenswerten Commits. Bislang habe ich weiter ADS verwendet, weil es keine echte Alternative für Postgres gab. Referenzlink
    • Ich hatte den Eindruck, dass SQL Server Management Studio (SSMS) diese Rolle nicht schon weitgehend erfüllt? Vermutlich gibt es einen Plan, SSMS langfristig in VS Code zu überführen. Vielleicht experimentiert man deshalb zuerst mit PostgreSQL-Unterstützung. SSMS-Link
    • Ich wünschte, es gäbe auch etwas Ähnliches für SQLite.
  • Ich werde diese Erweiterung definitiv selbst ausprobieren. Meine Karriere begann mit SQL Server, und SSMS passt für mich einfach perfekt. Ich nutze Postgres jetzt seit fast zehn Jahren, aber mit Verwaltungs- und Query-Tools wie pgadmin, dbeaver oder datagrip war ich nie wirklich zufrieden. Das Postgres-DBMS selbst ist großartig, und SQL Server ist ebenfalls hervorragend, wenn man die Kosten ausklammert. Dass die Community bei der Tooling-Landschaft rund um Postgres nicht viel lauter unzufrieden war, ist mir allerdings ein Rätsel.

    • Persönlich war Datagrip mit Abstand das beeindruckendste allgemeine DB-Tool, das ich bisher verwendet habe. Ich habe viele DB-Tools ausprobiert, aber die meisten wirken, als wären sie von DB-Experten gebaut worden; Produkte von echten IDE-Experten sind selten. Mit Funktionen, Erweiterbarkeit und Verbesserungstempo bin ich rundum zufrieden. Gegenüber Open-Source-Tools wie pgadmin oder dbeaver ist das für mich eine ganz andere Liga. Bei Oracle-Arbeit hat Datagrip meine mentale Gesundheit gerettet.
    • Fast die meisten SQL-Entwickler kümmern sich in Wahrheit gar nicht so sehr um Tooling. Meist gibt es eigene Leute für Datenbank- und Tabellendesign, und gewöhnliche Entwickler befassen sich eher mit Tabellen und Views als mit der Datenbank insgesamt; Indizes interessieren sie meist kaum. Menschen mit Interesse an Tooling nennt man „Entwickler-DBAs“, und sie sind sehr selten. Entsprechend schwer sind sie zu finden und entsprechend hoch ist die Fluktuation.
  • Ein Bereich, in dem JetBrains gegenüber VSCode klar im Vorteil ist, ist das aufgeräumte integrierte DB-Tooling.

    • Einmal im Jahr versuche ich, zu VSCode zurückzukehren, aber die starken Git- und DB-Integrationen von JetBrains halten mich immer wieder davon ab.
    • Man kann auch einfach nur Datagrip separat nutzen; ich habe mich für diesen Weg entschieden.
  • Postico war für mich immer das Standardwerkzeug für die Interaktion mit Postgres. Ich frage mich, ob hier Postico-Nutzer sind, die die neue Erweiterung schon ausprobiert haben.

    • Postico ist eher auf den Mac zugeschnitten, und der integrierte DB-Editor in IntelliJ ist funktional deutlich umfangreicher.
    • Als jemand, der Postico seit über zehn Jahren nutzt, werde ich diese Erweiterung ebenfalls ausprobieren. Ich hoffe, dass Copilot zusammen mit node-pg dann das Schema erkennt.
  • Ich frage mich, was derzeit bei Microsoft die „wertvollste“ IDE ist. Vor ein paar Jahren wurde VSCode noch wie ein „Visual Studio für Einsteiger“ vermarktet, aber inzwischen scheint VSCode die meistgenutzte „IDE“ zu sein. Visual Studio gilt eher als „Legacy“ (auch wenn es für C++ und .NET weiterhin gut ist).

    • In Sachen Entwicklerreichweite ist es eindeutig VSCode. Selbst wer sich nicht stark für das MS-Ökosystem interessiert, nutzt als .Net-Entwickler oft Rider, und Visual Studio bleibt eher in Umgebungen zurück, die sich schwer verändern, ähnlich wie Eclipse oder Netbeans. Ich selbst bin Emacs-Nutzer, aber wenn ich SQL Server außerhalb von Windows verwenden muss, lande ich am Ende doch bei VSCode.
    • In Sachen Profitabilität ist Visual Studio wahrscheinlich deutlich wertvoller. Ein großer Teil der Enterprise-Workflows und Plugins wird vermutlich nie nach VSCode portiert. Aber als Einstiegskanal ins MS-Ökosystem, beim Mindshare und in der Erweiterbarkeit hin zur Web-IDE liegt VSCode vorn. Dazu kommen viele weitere Vorteile, auch wenn die Grenzen der Electron-Shell etwas schade sind.
    • Ganz klar VSCode. Es ist zwar kostenlos, dient aber als Eingangstor ins MS-Ökosystem und sorgt dafür, dass Microsoft im Entwicklermarkt präsent bleibt.
    • In der Spieleindustrie wird Visual Studio weiterhin breit genutzt und ist für manche Zielplattformen sogar Pflicht. Rider wird zwar zunehmend verwendet, aber VS kommt als Teil mancher Build-Systeme trotzdem mit zum Einsatz.
    • Es wurde nie wirklich so vermarktet, dass man von VSCode zu Visual Studio wechselt, wenn man ein „echter Entwickler“ wird. Python/HTML/JavaScript liefen in VS ohnehin nie besonders gut, also gab es diesen realen Migrationspfad gar nicht.
  • Fühlt sich das nur für mich so an, als würden Microsoft Access und PostgreSQL nach rund dreißig Jahren wieder zusammenfinden?

    • Falls ich etwas zum Access-Bezug übersehen habe, sagt bitte Bescheid. Wenn es eine bessere Alternative als DBeaver gibt, hätte ich gern eine Empfehlung.
  • Ich frage mich, ob es so etwas auch für SQLite gibt. Braucht man für jede DB eine komplett eigene Erweiterung, oder gibt es Teile, die gemeinsam genutzt werden können?

  • VSCode sieht ziemlich ordentlich aus, aber ich wünschte, es gäbe eine einfache Möglichkeit, VSCode selbst über mehrere Monitore zu verteilen. Derzeit habe ich den Code auf einem Monitor und das DB-Tool in DataGrip auf einem anderen.

    • VSCode unterstützt bereits Multi-Monitor-Setups; siehe offizielle Dokumentation.
    • In VSCode kann man Tabs schon jetzt in separate Fenster auslagern und auf mehrere Monitore verteilen. Das geht auch mit dem Terminal. Die UI ist nicht besonders intuitiv, aber wenn man sich daran gewöhnt hat, ist es wirklich gut. Man kann zum Beispiel Code und Terminal nebeneinander legen (so etwas konnte Emacs übrigens schon lange).
    • Ich habe erst gestern gelernt, dass man Tabs in ein neues Fenster auslagern kann. Es ist keine völlig natürliche Multi-Monitor-Erfahrung, aber man kann es immerhin auf zwei Monitore verteilen, also vielleicht hilfreich als Hinweis.
    • Man kann das Problem natürlich auch per Hardware lösen, also mit einem einzigen 38-Zoll-Ultrawide-Monitor.