本番を止めずに Postgres を運用する — 交渉の余地なし。
稼働中テーブルへの安全な DDL、インデックス前の EXPLAIN、健全な vacuum、前段のプーラー、そして復元テスト済みでなければ意味のないバックアップ。スキーマ設計は schematize-database の担当で、ここはエンジンの運用です。
$ schematize install postgres譲れない基準
「速くするため」に無効化しない。完全な一覧はスキルに。
サポート中のメジャーのみ
本番はサポート外のメジャーを動かさない。EOL をカレンダーに入れ、アップグレードはロールバック付きでリハーサルする。
lock_timeout なしの DDL 禁止
稼働中テーブルへの DDL は必ず lock_timeout とリトライで始める。ロック待ちのマイグレーションは後続の全クエリをブロックする。
ブロックしないインデックスと制約
CREATE INDEX CONCURRENTLY、新しい制約は NOT VALID で追加して VALIDATE。ACCESS EXCLUSIVE でのテーブル書き換えはしない。
インデックスの前に計測
全クラスタで pg_stat_statements を有効にし、EXPLAIN (ANALYZE, BUFFERS) の実プランを見る。なければ「遅い」は推測にすぎない。
Autovacuum とプーラー
Autovacuum は決して止めず、wraparound を監視し、max_connections は低く、アプリの前に PgBouncer を置く。
復元テスト済みのバックアップ
ベースバックアップ + 連続 WAL(PITR)を暗号化し、復元を自動化して RPO/RTO を計測する。pg_dump は正式なバックアップではない。
最小権限と RLS
マイグレーション用ロールとアプリ用ロールを分け、TLS 付き scram-sha-256、マルチテナントでは FORCE 付き RLS を fail-closed で使う。
コマンド
.claude/commands/ にインストール。いつでも /pg-help を実行。
/pg-backupバックアップ/PITR を監査し、RPO/RTO を計測する復元リハーサルを組む。/pg-ccContext compact:コンテキストとチェックリストをアーカイブに書き出し、/compact を実行。/pg-claude常時オンの Postgres 用 CLAUDE.md をルートに作成またはマージ(他スキルのブロックは上書きしない)。/pg-explainEXPLAIN (ANALYZE, BUFFERS) のプランを読み、ロックなしで作れるインデックスまたは書き換えを提案。/pg-handoffコンパクトせずにコンテキストの handoff を作成 — セッション終了やタスク切り替え。/pg-helpすべてのコマンドを一覧表示。/pg-load規範の全文を強制ロード:バージョンと設定、EXPLAIN、vacuum、ロック、プーリング、レプリケーション、バックアップ、アップグレード、RLS。/pg-migrateスキーマ変更を稼働中テーブル向けの安全な手順(expand、バッチ backfill、contract)に変換し、ゲートを実行。/pg-reviewマイグレーションと設定をレビュー:check-pg-migration.sh ゲートを実行し、機械が読めない部分を読む。/pg-upgradeメジャーアップグレード(pg_upgrade または論理)をリハーサル、ロールバック、チェックリスト付きで計画。AI エージェント向け
人手を介さずにインストール。メタデータは llms.txt。
- 実行: git clone https://github.com/schematizeme/skill-postgres.git && ./skill-postgres/install.sh
- またはダウンロード: https://github.com/schematizeme/skill-postgres/releases/latest/download/skill-postgres.zip を .claude/skills/ に展開
- assets/CLAUDE.md をリポジトリのルートにコピー(常時オンのルール)。
- /pg-help で確認。
ディスカッション
読み込み中…