- この拡張機能は AIベースの IntelliSense と「@pgsql」GitHub Copilot エージェントにより、クエリ作成とデータベース管理を簡素化する
- Entra ID 認証、Azure Database for PostgreSQL との連携などにより、統合されたセキュリティとクラウド展開管理を支援する
- スキーマの可視化、クエリ履歴管理、コンテキスト IntelliSense など、開発者の生産性と効率向上に重点を置いている
- 複数のデータベース接続、パスワードレス認証、直感的な UI により、オンボーディングと作業切り替えのコストを最小化する
紹介
- Microsoft は Visual Studio Code(以下 VS Code)向けの 新しい PostgreSQL 拡張機能 のパブリックプレビューを発表した
- この拡張機能は、PostgreSQL データベース管理 と開発者ワークフローを単一の環境で簡単に処理できるよう設計されている
- 開発者は VS Code を離れることなく、データベースオブジェクト管理、クエリ草案の作成、コンテキスト IntelliSense、「@pgsql」GitHub Copilot エージェントの支援を受けられる。
開発者が直面する課題と解決策
- 最近の 2024 StackOverflow 開発者調査 によると、41% の開発者が 作業切り替えの難しさ を経験している
- 2024 Stripe Developer Coefficient Report では、開発時間の 最大 50% がデバッグと問題解決 に費やされていることが確認できる
- データベース管理とアプリケーション開発を 統合する拡張ツールの不在 が非効率性に影響している
- 新しい拡張機能は Postgres データベースツール と @pgsql GitHub Copilot を統合し、1つの環境で開発、管理、デバッグを処理できる
- Entra ID 認証、Azure Database for PostgreSQL との緊密な連携などにより、セキュリティと集中管理を支援する
主な機能
スキーマの可視化
- オブジェクト エクスプローラー(Object Explorer)でデータベース項目を 右クリック すると、「Visualize Schema」オプションでスキーマを可視化できる
データベース認識型 GitHub Copilot
- VS Code 内で PostgreSQL コンテキストを認識 する AI 支援を提供
- 自然言語によるデータベース問い合わせ、スキーマ最適化、SQL 実行などを簡素化
- 「@pgsql」コマンド、「Rewrite Query」「Explain Query」「Analyze Query Performance」などのコンテキストメニューで AIベースのクエリ分析/最適化 を支援
- 開発中に リアルタイムで専門家レベルのガイド とセキュリティ、性能向上機能を提供
Copilot チャット エージェントモード
- 対話型のインテリジェントなチャットエージェント(@pgsql)が、質疑応答を超えて多段階タスクまで支援
- ワークスペースの実際のコンテキストを理解し、許可を得てコード作成やデバッグも実行 可能
- データベース作成、拡張機能の有効化など複雑な作業も自然言語で指示できる
- データベース変更作業には 明示的なユーザー許可 が必要
データベース接続と管理
- ローカルおよびクラウドの PostgreSQL インスタンス に簡単に接続
- 複数の接続プロファイル、接続文字列の解析、接続情報設定の簡素化
- Azure Database for PostgreSQL のデプロイ を直接参照・フィルタリング可能
- Entra ID 連携 によりセキュリティを強化し、管理者主導のデータベースアクセス管理を支援
パスワードレス認証とセキュリティ
- Entra ID によるパスワードレス認証 を提供
- 手動ログイン不要で、自動トークン更新を支援
- 認証タイムアウトを最小化し、開発中の継続性を確保
- エンタープライズのセキュリティ基準に適合
- 既存の Entra ID 資格情報を利用可能
- 別途アカウント管理は不要
データベース エクスプローラーとクエリ履歴
- スキーマ、テーブル、関数などのデータベースオブジェクトを構造的に確認・管理 できる
- オブジェクトの作成、修正、削除を支援
- クエリ履歴管理により 過去に実行したクエリを再利用しやすい
クエリ編集とコンテキスト IntelliSense
- SQL キーワード、テーブル名、関数名の自動補完 と構文ハイライトを支援
- クエリの自動フォーマット、履歴管理、読みやすい編集環境を提供
差別化ポイントと強み
- 生産性向上: コンテキスト IntelliSense、SQL フォーマットなどで作業時間を短縮し、エラーを削減
- スマートな AI 支援: データベース/ワークスペース認識型 Copilot チャットエージェントによる多段階支援
- 迅速なオンボーディング: 接続マネージャーにより、初心者でも数分で環境セットアップが可能
- セキュリティ: Entra ID 導入による集中型アクセス制御、Azure デプロイの参照が容易
- 統合ツールセット: データベースオブジェクト管理、クエリ実行、インスタンスのデプロイまで VS Code 内で可能
- クラウド親和性: Azure Database for PostgreSQL との深い統合により、クラウドデータベース運用を簡素化
始め方
- VS Code Extensions Marketplace で「PostgreSQL」を検索し、Preview PostgreSQL extension(青い象のアイコン)をインストール
- GitHub Copilot および Copilot Chat 拡張機能が必要で、「@pgsql」コマンドで Copilot と対話可能
フィードバックと今後の計画
1件のコメント
Hacker Newsのコメント
私たちのチームのリリースを祝いたい気持ち。先週のMicrosoftスポンサーセッションで、これを実際に最初にデモしたときの体験を共有。デモ動画はこちらで見られるとの案内。さらにMSFTブースで別セッションも行ったが、録画版はまだ未公開とのこと。代わりに、私がデモしたすべての機能を自分で試せるリポジトリがこちらにあるという情報共有。もし問題があればここでチームに知らせてほしいとの案内
以前自作したnpmパッケージ「pgstrap」で解決していた主要な問題を、このツールもまた解決してくれるという話。このツールはデータベース構造をディレクトリ形式で生成して、自分のデータベーススキーマをLLM(大規模言語モデル)が活用できるようにし、コードレビュー時にテーブル変更を確実に見えるようにする利点がある。自分のDBの各テーブルごとにSQLファイルを生成し、スキーマごとにディレクトリへ整理する。Railsのschema.rbに近い概念。エディタがデータベースを認識するほうがよいのか、それともコードベースにコンテキストをコミットするほうがよいのか悩ましい。生成されるコードや成果物が少なければ、コードベースはよりクリーンになる。ただ、全員がVS Codeを使っているわけでもなく、この統合を活用できるとも限らないのが現実。DBブラウザGUIは常に決定的な勝者がいなかった。それでもVS Codeの圧倒的なシェアによって、開発環境内でのDB参照の標準になるかもしれないという見方。pgstrapリンク
このツールは本当に素晴らしく見えるという第一印象。MicrosoftがSQL ServerではなくPostgres向けツールに力を入れているのが驚きで、それだけPostgresの需要が多いのだろうという推測
この拡張はぜひ自分で使ってみるつもり。自分のキャリアの始まりはSQL Serverで、SSMSが自分にはぴったりだという話。Postgresを10年近く使ってきたが、pgadmin、dbeaver、datagripのような管理・クエリツールには満足できなかったという告白。PostgresというDBMS自体は素晴らしく、SQL Serverもコストさえ除けば最高だと思う。ただ、コミュニティでもっとPostgresのDBツーリング生態系への不満が大きくなってもよさそうなのに静かだったのが不思議
JetBrainsがVSCodeに対して明確に優位な点として、洗練された内蔵DBツールの提供を挙げる話
PosticoはずっとPostgresとやり取りする自分の標準ツールだったという話。Posticoユーザーの中で新しい拡張を試した人がいるのか気になる
現在Microsoftで最も「価値ある」IDEは何なのか気になるという点から、数年前まではVSCodeが「初心者向けVisual Studio」のように宣伝されていたが、最近ではVSCodeが最も多く使われる「IDE」になったという現象共有。Visual Studioは主に「レガシー」(C++や.NETには依然として良いが)と見なされているという見方
Microsoft AccessとPostgreSQLが、およそ30年ぶりに再会する感じなのかという質問
SQLiteでもこういう機能があるのか気になる。DBごとにまったく新しい拡張が必要なのか、それとも共通で使える部分があるのかという質問
VSCodeはかなり良さそうだが、複数モニターでVSCode自体を分散して使う簡単な方法があるといいのにという願い。今はコードを1台のモニター、DBツールをDataGripで別モニターに分けて使っている