S
sqlalchemy-alembic-expert-best-practices-code-review
sqlalchemy-alembic-expert-best-practices-code-review について
データベースコードの作成、最適化、レビューに使えるSQLAlchemyとAlembicの実践ガイドです。移行の安全性、インデックス管理、制約変更の段階的な適用に重点を置き、各ルールに例を示します。
主な機能
- 01インデックス操作の並行実行
- 02クエリに応じたインデックス確認
- 03一意制約の段階的な追加
- 04外部キーの安全な追加と検証
- 05列型を段階的に変更
- 06冗長または過剰なインデックスの回避
活用シーン
- 01Alembicのスキーマ移行レビュー
- 02インデックスや制約の追加
- 03列型変更時のロックリスク低減
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wispbit-ai/ skills --skill sqlalchemy-alembic-expert-best-practices-code-reviewインストール後、Claude Code で/sqlalchemy-alembic-expert-best-practices-code-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
rules/change-column-type.mdensure-index-not-covered.mdlimit-non-unique-index.mdonly-concurrent-indexes.mdsplit-check-constraint.mdsplit-foreign-key.mdunique-constraint.mdverify-query-patterns-are-indexed.md詳細
SQLAlchemy & Alembic のエキスパート向けベストプラクティス
シンプルで、実用的で、明確な方針に基づいています。本番品質の SQLAlchemy および Alembic コードを書くうえで重要なことだけを扱います。
適用するタイミング
次のような場合に、これらのガイドラインを参照してください。
- スキーマ変更のための Alembic マイグレーションを作成するとき
- SQLAlchemy モデルを作成または変更するとき
- Alembic を使ってインデックス、制約、または外部キーを追加するとき
- データベースマイグレーションコードの安全性を確認するとき
- 既存のデータベーススキーマをリファクタリングするとき
- クエリパターンやデータベースパフォーマンスを最適化するとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | インデックス管理 | CRITICAL-HIGH | only-concurrent-indexes、verify-query-patterns-are-indexed |
| 2 | 制約の安全性 | HIGH | unique-constraint、split-foreign-key、change-column-type |
| 3 | 最適化 | MEDIUM | split-check-constraint、limit-non-unique-index |
| 4 | インデックスの効率性 | LOW | ensure-index-not-covered |
クイックリファレンス
only-concurrent-indexes- インデックス操作では常にpostgresql_concurrently=Trueを自動コミットブロックと併用しますverify-query-patterns-are-indexed- SQLAlchemy クエリに適切なインデックスが定義されていることを確認しますunique-constraint- 一意制約の作成を、並行インデックスの作成と制約の追加のステップに分けますsplit-foreign-key- 外部キーをまずNOT VALIDで追加し、その後、別途検証しますchange-column-type- テーブルロックを避けるため、複数ステップでカラムの型を変更しますsplit-check-constraint- チェック制約をまずNOT VALIDで追加し、その後、別途検証しますlimit-non-unique-index- 効率性のため、非一意インデックスのカラム数を最大3つに制限しますensure-index-not-covered- 複合インデックスですでにカバーされている冗長なインデックスを防ぎます
使用方法
詳しい説明とコード例については、個々のルールファイルを読んでください。
rules/only-concurrent-indexes.md
rules/verify-query-patterns-are-indexed.md
rules/unique-constraint.md
rules/split-foreign-key.md
rules/change-column-type.md
rules/split-check-constraint.md
rules/limit-non-unique-index.md
rules/ensure-index-not-covered.md
各ルールファイルには、次の内容が含まれています。
- 重要である理由の簡単な説明
- 影響度とその説明
- 説明付きの不適切な SQLAlchemy/Alembic の例
- ベストプラクティスに基づく適切な実装
- 安全なマイグレーションのための追加情報
コメント
Markdown 対応