データベース 中級
Claude Code × PostgreSQL
PostgreSQL
公式サイトMCP設定
~/.claude/claude_desktop_config.json に以下を追加:
{
"mcpServers": {
"postgresql": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-postgres",
"postgresql://user:password@localhost:5432/mydb"
],
"env": {}
}
}
} できること
SQLクエリ実行
自然言語からSQLクエリを生成・実行。SELECT・INSERT・UPDATE・DELETEの全操作に対応し、結果を整形して表示。
スキーマ分析
テーブル定義・リレーション・インデックス構成を自動解析し、ER図やドキュメントを生成。
データ移行
既存テーブルのデータ変換やスキーマ変更に伴うマイグレーションスクリプトを自動生成。
パフォーマンス最適化
EXPLAINの結果を分析し、インデックス追加やクエリ書き換えによる最適化を提案。
活用シーン
データベース設計の自動化
要件定義を自然言語で記述するだけで、正規化されたテーブル設計・リレーション・インデックス戦略を自動生成。
レガシーDB移行
既存データベースのスキーマを解析し、新しいスキーマへのマイグレーションスクリプトとデータ変換ロジックを生成。
レポート生成
ビジネス要件を自然言語で伝えるだけで、複雑な集計クエリを生成し、結果をCSVやMarkdown表形式で出力。
前提条件
- PostgreSQLサーバー(ローカルまたはリモート)
- データベースへの接続情報(ホスト、ポート、ユーザー名、パスワード)
- Claude Codeインストール済み
トラブルシューティング
接続エラー(ECONNREFUSED)が出る
PostgreSQLサーバーが起動しているか確認してください。ローカルの場合は`pg_isready`コマンド、リモートの場合はファイアウォール設定とpg_hba.confのアクセス許可を確認してください。
SSL接続が必要と表示される
接続文字列に`?sslmode=require`を追加してください。自己署名証明書の場合は`?sslmode=no-verify`も試してください。
権限不足でテーブルにアクセスできない
接続ユーザーに対象スキーマ・テーブルへのGRANT権限が付与されているか確認してください。読み取り専用の場合は`GRANT SELECT ON ALL TABLES IN SCHEMA public TO ユーザー名;`を実行してください。