P
postgresql-expert-best-practices-code-review
postgresql-expert-best-practices-code-review について
PostgreSQL の本番用スキーマ、マイグレーション、クエリを作成・レビューする開発者向けのガイドです。優先度別のルールに、誤った例と修正例を添えています。
主な機能
- 01優先度別のインデックスルール
- 02制約と外部キーの安全な変更
- 03スキーマ設計と命名の指針
- 04誤りと修正を示すマイグレーション例
活用シーン
- 01スキーマの性能問題のレビュー
- 02書き込みを止めないインデックス追加
- 03安全な制約マイグレーションの計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wispbit-ai/ skills --skill postgresql-expert-best-practices-code-reviewインストール後、Claude Code で/postgresql-expert-best-practices-code-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/add-index-for-foreign-key.mdalways-include-columns.mdcolumn-naming-standards.mdindex-naming-standards.mdlimit-non-unique-index.mdonly-concurrent-indexes.mdonly-jsonb.mdset-column-not-null.mdsplit-foreign-key.mdunique-constraint.md詳細
PostgreSQL のエキスパート向けベストプラクティス
シンプルで、実用的で、明確な方針に基づいています。本番環境向けの PostgreSQL クエリを書くうえで重要なことだけを扱います。
適用する場面
次のような場合に、これらのガイドラインを参考にしてください。
- データベースのマイグレーションやスキーマ変更を行う
- PostgreSQL のテーブルやカラムを作成または変更する
- インデックス、制約、外部キーを追加する
- パフォーマンスの問題がないかデータベーススキーマを確認する
- 既存のデータベース構造をリファクタリングする
- クエリのパフォーマンスやデータベース設計を最適化する
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | インデックス管理 | CRITICAL-HIGH | only-concurrent-indexes, add-index-for-foreign-key |
| 2 | 制約の安全性 | HIGH | unique-constraint, split-foreign-key, set-column-not-null |
| 3 | スキーマ設計 | MEDIUM | only-jsonb, always-include-columns, limit-non-unique-index |
| 4 | 命名規則 | LOW | index-naming-standards, column-naming-standards |
クイックリファレンス
only-concurrent-indexes- インデックス作成時の書き込みブロックを防ぐため、常に CONCURRENTLY を使用しますadd-index-for-foreign-key- クエリのパフォーマンスを向上させるため、外部キーにインデックスを作成しますunique-constraint- 一意制約の作成を、並行インデックスの作成と制約の追加の手順に分けますsplit-foreign-key- まず検証なしで外部キーを追加し、その後別途検証しますset-column-not-null- テーブルロックを避けるため、NOT NULL を設定する前にチェック制約を使用しますonly-jsonb- パフォーマンスとインデックス機能を向上させるため、JSON の代わりに JSONB を使用しますalways-include-columns- 監査可能性を確保するため、すべてのテーブルに id、created_at、updated_at を含めますlimit-non-unique-index- 効率性のため、一意でないインデックスのカラム数を最大 3 つに制限しますindex-naming-standards- 一貫性のあるインデックス命名を使用します:idx_tablename_columnnamecolumn-naming-standards- 一貫性のある snake_case 命名を維持し、外部キーには id 接尾辞を使用します
使用方法
詳しい説明とコード例については、各ルールのファイルを参照してください。
rules/only-concurrent-indexes.md
rules/add-index-for-foreign-key.md
rules/unique-constraint.md
rules/split-foreign-key.md
rules/set-column-not-null.md
rules/only-jsonb.md
rules/always-include-columns.md
rules/limit-non-unique-index.md
rules/index-naming-standards.md
rules/column-naming-standards.md
各ルールファイルには、次の内容が含まれています。
- 重要な理由の簡単な説明
- 影響度とその説明
- 説明付きの誤ったマイグレーション例
- ベストプラクティスに沿った正しいマイグレーション例
- 追加の背景情報と参考資料
コメント
Markdown 対応