世界を動かす技術を、日本語で。

VS CodeにおけるPostgres IDE

概要

  • Visual Studio Code向けPostgreSQL拡張機能 のパブリックプレビューを発表
  • IntelliSenseGitHub Copilot (@pgsql) との統合でデータベース管理と開発を効率化
  • Entra ID認証Azure Database for PostgreSQL との連携でセキュリティと利便性を強化
  • AI支援・自然言語操作、スキーマ可視化など豊富な新機能を搭載
  • 開発生産性の向上とワークフローの簡素化を実現すること

Visual Studio Code向けPostgreSQL拡張機能 パブリックプレビュー発表

拡張機能の概要と目的

  • PostgreSQL拡張機能 をVisual Studio Code (VS Code)で利用可能にすることで、 データベース管理と開発作業 を統合すること
  • IntelliSense‘@pgsql’ GitHub Copilotエージェント による文脈認識型支援を実現し、クエリ作成やデータベース操作をエディタ内で完結すること
  • StackOverflow Developer Survey 2024 によると、41%の開発者がタスク切替に課題を感じていることを踏まえ、 タスク切替の負担軽減 を目指す提案
  • Stripe Developer Coefficient Report 2024 で指摘された、開発時間の最大50%がデバッグやトラブルシューティングに費やされている現状の改善を意図すること
  • アプリ開発とデータベース管理 を一元化し、分断されたワークフローの解消を図ること

主な機能と特徴

  • Postgresデータベースツール@pgsql Copilotエージェント の統合による統一開発体験の提供
  • Entra ID認証 による集中型アイデンティティ管理と、 Azure Database for PostgreSQL との深い連携を実現すること
  • スキーマ可視化 を右クリックメニューから簡単に実施可能(例: Object Explorerで「Visualize Schema」を選択すること)
  • AI支援 によるクエリ作成・最適化・パフォーマンス分析・セキュリティ強化を実現すること
  • 自然言語コマンド (例:「@pgsql」)でデータベース操作やスキーマ最適化、SQL実行を簡易化すること
  • コンテキストメニュー (例:「Rewrite Query」「Explain Query」「Analyze Query Performance」)からAI活用を促進すること
  • GitHub Copilot Chatエージェントモード で、データベース文脈を考慮したマルチステージタスクを自動化・支援すること
  • ユーザー許可が必要なデータベース変更 による安全性の確保

接続と認証管理

  • ローカル・クラウド両対応 のPostgreSQLインスタンス接続管理を簡素化すること
  • 複数の接続プロファイル接続文字列解析 によるセットアップの迅速化
  • Azure Database for PostgreSQL のデプロイメントを直接閲覧・フィルタリングすること
  • Entra ID統合 でセキュリティ・アイデンティティ管理を強化すること
    • 「Browse Azure」オプションからAzure上のデータベースへ簡単に接続すること
    • ローカルDockerデプロイメント にも接続可能
  • シームレスな認証トークン自動更新 で開発中の認証切れリスクを低減すること
  • 企業向けセキュリティ標準 に準拠し、既存のEntra ID資格情報を活用すること

データベースオブジェクト管理とクエリエディタ

  • スキーマ・テーブル・関数 等のデータベースオブジェクトの構造化ビューを提供すること
  • オブジェクトの作成・変更・削除 をVS Code内で実施可能にすること
  • セッションごとのクエリ履歴 をObject Explorer下部で確認・再利用すること
  • 文脈認識型IntelliSense によるSQLキーワード・テーブル名・関数の自動補完を活用すること
  • 構文ハイライト・自動フォーマット でクエリの可読性を向上すること

拡張機能の優位性と導入方法

  • 生産性向上 :IntelliSenseやSQLフォーマット機能で作業効率と精度を高めること

  • @pgsql GitHub Copilot Chatエージェント :データベース・ワークスペース文脈を活用した高度な開発支援を提供すること

  • 簡単なオンボーディング :Connection Managerで数分で利用開始できること

  • セキュリティ強化 :Entra ID連携によるアクセス制御と集中管理を実現すること

  • 包括的なツールセット :データベース管理・クエリ実行・インスタンス展開を一つのエディタで完結すること

  • クラウド連携 :Azure Database for PostgreSQLとの統合でクラウドデータベース管理を簡素化すること

  • インストール手順

    • VS Codeの拡張機能ビューを開くこと
    • Marketplaceで「PostgreSQL」を検索すること
    • プレビュー版(青い象のアイコン)の拡張機能(ID: ms-ossdata.vscode-pgsql)を選択・インストールすること
    • GitHub Copilot および GitHub Copilot chat 拡張機能も併せてインストールし、「@pgsql」コマンドでデータベースと対話すること

フィードバック・ライセンスについて

  • VS Code内蔵のフィードバックツール から意見や不具合報告を送信すること
  • 初期リリースのプレビューライセンス は今後更新予定であり、全てのPostgresユーザーが平等に利用できることを目指すこと
  • ライセンス更新情報を随時確認すること

まとめ・次のステップ

  • PostgreSQL拡張機能 は開発効率・生産性を大幅に向上させること
  • パブリックプレビュー版 をぜひ体験し、PostgreSQL開発ワークフローの進化を実感すること
  • 詳細や開始方法は公式ドキュメント(https://aka.ms/pg-vscode-docs)を参照すること
  • Jonathon Frost (Principal PM)への特別謝辞を表明すること

Hackerたちの意見

おお、これすごいね。Postgresのためにこんなに頑張ってくれたのは驚きだよ、SQL Serverじゃなくて。需要がかなり高いに違いないね。

それはMSSQLツールがAzure Data Studioの一部としてメンテナンスされていて、状態が良かったからだと思う。ADSはもう終わりに向かってるし、VS CodeでPostgresの拡張機能をインストールしようとしたとき、最後の重要な貢献が6年前だったことに驚いたよ。新しいVS Codeのバージョンでは動かなかった。俺はPostgresとMSSQLの両方でADSを使ってたけど、この発表の前は移行先がなかったからずっとADSを使い続けてたんだ。[0] https://github.com/microsoft/vscode-postgresql/commits/maste...

もうSQL Server Management Studio[1]があるから、似たようなことはカバーしてるみたいだね?SSMSをVSCodeに移行したいのかもしれないから、新しい分野、PostgreSQLをカバーすることで試してみるのは理にかなってると思う。[1]: https://learn.microsoft.com/en-us/ssms/sql-server-management...

コパイロットの統合がめっちゃいい感じだし、スキーマビューもいいね。MSSQLの拡張機能にはそれがないけど、他はPostgresのやつと似てる。

もうVS Code用のMicrosoft SQL Server拡張があって、これはそれのクローンみたいだね。ちょっと試してみたけど、SQL Server拡張と同じように見えるし、感じも同じだよ。メニューやダイアログも同じだしね。SQL Server拡張が、今は廃止されたAzure Data Studio(VS Codeのフォーク)の基盤になったと思うよ。SQL Server拡張はこちらで確認してね: https://marketplace.visualstudio.com/items?itemName=ms-mssql...

SQLサーバーは今、「キャッシュカウモード」って感じだね。ツールにもっと投資しても、今の段階では収益が増えるとは思えないよ。

SQLiteに似たようなものがあればいいのに。

MS SQLサーバーはレガシーシステムだね。技術的な理由で他に選択肢がない限り、新しいデータベースをSQLサーバーで作るビジネスはないと思うよ。

マイクロソフトはここ10〜15年でオープンソースに全力投球してるみたい。消費者の視点から見ると、ほとんどの人が恩恵を受けてるよね。ビジネスの視点から見ると、無償のサポートとコミュニティからの評価を得てるんだ。

僕はマイクロソフトの開発者アドボケートだけど、両方のチームが拡張機能の改善にすごく努力してるのを見てきたよ。SQL Server拡張と新しいPostgreSQL拡張の両方のチームと一緒にユーザビリティスタディに参加したし、準備が整ったらバグバッシュにも参加した。両チームとも開発者がツールを楽しんでほしいと思ってるから、必要なことについてフィードバックを送ってあげてね。SQL Server拡張のニュースが欲しいならCarlos Roblesをフォローしてね: https://www.linkedin.com/in/croblesm/ PostgreSQLサーバー拡張のニュースが欲しいならJoshua Johnsonをフォローしてね: https://www.linkedin.com/in/johnsonjoshuae/

JetBrainsがVSCodeに勝ってる最大のポイントは、内蔵のデータベースツールがめっちゃクリーンなところだね。

データベースツールを別に(DataGrip)使うこともできるよ。俺はそうしてる。

毎年くらいVSCodeに戻ろうとするんだけど、JetBrainsのgitやデータベースの統合が良すぎて進めないんだよね。

これは絶対にチェックするよ。俺は主にSQL Serverでキャリアをスタートさせたから、SSMSが自分の脳にぴったりなんだ。10年前くらいからPostgresを使い始めて、pgadminやdbeaver、datagripなどの一般的な選択肢には全然満足してなかったんだ。Postgres自体は素晴らしいけど(SQL Serverも素晴らしいよ、ただお金がかかるだけ)、なんでコミュニティでDBMSツールのエコシステムについてもっと騒がれないのか理解できなかったな。

Datagripは圧倒的に優れたユニバーサルデータベースツールだと思う。いろいろ試してみたけど、どれもデータベースの人たちが作った感じで、IDEデザイナーが作ったものとは違うんだよね。機能の深さ、拡張性、改善のスピード—すごく満足してる。オープンソースを貶めたくはないけど、pgadminやdbeaverは同じレベルで戦ってるとは思えない。Oracleで働いてるけど、Datagripのおかげで精神的に救われたよ。

僕の経験では、ほとんどのSQL開発者はツールにあまりこだわらないね。大抵は誰かがデータベースやテーブルを設計して、開発者はデータベースにはあまり興味がなくて、主にテーブルやビューにしか関心がない。インデックスについてはほとんど気にしない。気にする人たち、つまりツールが必要な人たちは開発DBAと呼ばれていて、すごく少ないんだ。僕は一度も雇ったことがないし、雇っても続かなかった(彼らがどれだけ貴重かに対して給料が足りないから)。

うーん、面白いね。数年間Datagripを使ってたけど、今はDBeaver(もうJBのサブスクリプションがないから)。Datagripはすごく強力で、インテリセンスもトップクラスだった。今はDBeaverを使ってて、かなり安定してる。まあ、一日中使ってるわけじゃないけど、必要なときにはちゃんと仕事をしてくれる。

今のMSにとって一番「価値のある」IDEは何だろう?数年前、VSCodeは基本的に「初心者向けのVisual Studio」としてマーケティングされていて、本当の開発者になったらVisual Studioに移るべきだって言われてたけど、それ以来VSCodeはどんどん成長して、今では最も使われている「IDE」として君臨してる。Visual Studioは主に「レガシー」と見なされてるけど(簡略化しすぎだけど、CPPや.NETには素晴らしいIDEだけどね…)。

それは間違いなくVS Codeだね。料金は取らないけど、MSのエコスフィアに人を引き込む大きな魅力になってるし、MSを開発者のゲームに留めておくためにもね。

金銭的にはVisual Studioだね。企業向けの開発ワークフローやプラグインがたくさんあって、たぶんVSCodeには移植されないだろうから、.NETやCOMの実装からはね。マインドシェアやMicrosoftエコシステムへの入り口としては、間違いなくVSCodeだね。それに、タイムシェアリング開発の復活においては最高のWeb IDEだよ、クラウドにはごめんね。それだけで、GithubやAzureにいるみんなが、X WindowsやRDP/Citrixセッションの現代版として使えるってことだ。Eclipse v2にしては悪くないけど(Enrich Gammaが主なアーキテクトの一人)、Electronシェルは残念だね。

開発者のリーチについて言えば、簡単にVSCodeだね。Microsoftのものにはあまり興味がないけど、俺が知っているほとんどの「真剣な」.Net開発者はRiderを使っているから、Visual StudioはEclipseやNetbeansが占めていたスペースに後退しているんじゃないかな。つまり、まだ使われているけど、変化が難しい場所で主に使われているって感じ。俺はemacsユーザーだけど、SQL Serverとたまにやり取りしなきゃいけないから、VSCodeのコピーをインストールしているよ。今は非Windowsシステムでそれをやるのが一番いい方法だからね。

数年前、VsCodeは基本的に「初心者向けのVisual Studio」として売り出されてたけど、本物の開発者になったらVisual Studioに移行するって言われてたよね。それっていつの話?

Visual Studioはゲーム業界でまだ広く使われていて、いくつかのプラットフォームをターゲットにするにはほぼ必須だよね。最近はRiderを主に使う人も増えてるけど、VSはビルドシステムの一部としてまだ使われてるよ。

本当の開発者になったらVisual Studioに移るはずだった そんな風には宣伝されてなかったよ。人気のVSCode言語、PythonやHTML、JavaScriptが普通のVisual Studioではあまりサポートされてなかったから、Pythonやウェブ開発をしてる人は「ちゃんとした」Visual Studioに移ることなんてできないんだ。

Posticoは、Postgresとやり取りするためのデファクトスタンダードだったんだ。これを試したPosticoユーザーがいるか気になるな。

すごくMac寄りだし、IntelliJの内蔵DBエディタはもっと機能が豊富だと思う。

Posticoを10年以上使ってるけど、これを試してみるよ。node-pgを使うときにCopilotがスキーマを認識してくれるといいな。

これは大きな問題を解決するもので、俺は「pgstrap」っていうnpmパッケージを作ったんだ。[1] それは「データベース構造」ディレクトリを生成して、俺のデータベーススキーマをLLMに利用できるようにするんだ(いろんなテーブルの変更が見えるから、コードレビューも楽になるしね)。だから、俺のデータベースの各テーブルに対してSQLファイルがあって、それが各スキーマのディレクトリにきれいに整理されてる。Railsにはschema.rbって似たようなアイデアがあるけど、エディタがデータベースを意識している方がいいのか、コードベースが適切なコンテキストを持っている方がいいのかはわからないな。一方では、生成されたコードやアーティファクトが少ない方がクリーンなコードベースになるけど、他方では、みんながVC Codeを使っているわけじゃないし、この統合の使い方を知っているわけでもないからね。データベースブラウザのGUIは、実際には一つの勝者がいないんだ。ただ、VS Codeは「開発中のデータベースを表示する標準的な方法」になる可能性があるくらいには強いよ。[1] https://github.com/seveibar/pgstrap

それは本当に実用的なツールみたいだね、シェアしてくれてありがとう!ちょっと気になるんだけど、トリガーやストアドプロシージャなんかも出力するの?多くのツールはテーブル、カラム、インデックスを定義した後で止まっちゃうけど、DBの他の機能を使うためのもっと良いツールが欲しいな。

俺はただ、読み取り専用のログインを持つMCPサーバー(copilotかcline付き)を使ってるよ。

ちょっと混乱してるんだけど、データベーススキーマの標準的な状態をバージョン管理に含めて、それに至るまでのすべてのマイグレーションも一緒に管理するのって、どのウェブフレームワークでも完全に標準的なことじゃないの?

マイクロソフトアクセスがPostgreSQLに出会うの、30年後?

これに関してAccessに関する何か見逃してる?それともただイライラしてるだけ?俺はそのゴミみたいなやつで仕事しなきゃいけないから、DBeaverより良いのがあれば教えてほしいんだけど。

このリリース、チームにおめでとう!実は、先週マイクロソフトのスポンサーセッションでこれをデモしたのが最初だったんだ。ここでそのトークを見てみて: https://www.youtube.com/watch?v=k6Vm2hakkV4 MSFTブースでのシアターセッションもやったけど、その録画はまだ上がってない。だけど、ここにあるリポジトリの手順に従えば、僕がデモしたすべての機能をチェックできるよ: https://github.com/Azure-Samples/postgresql-extension-playgr... 何か問題があったらここでチームに知らせてね: https://github.com/microsoft/vscode-pgsql/issues

[死んでる]

ちょっと教えておくけど、あなたのウェブサイトは「pamelafox.org」でアクセスすると404エラーになるよ。これはあなたのプロフィールに書いてある通りだね。

お気に入りのコードエディタを離れずにどうやってこれをNeovimにインストールするの?LSPはあるの?それともMicrosoftの独自のものなの?Copilot統合なしで競合と比べてどれだけ良くなってるのか気になるな。今はDBeaver CEを使ってるけど、SQLite用にも必要な機能は全部揃ってる。

こんな感じで、JetBrainsのライセンスにお金を払う理由の90%が…消えちゃった。

違いは?JetBrainsはあなたを裏切ったり、次の道の曲がり角で製品を放棄したりしないよ。