S
sqlalchemy-alembic-expert-best-practices-code-review
sqlalchemy-alembic-expert-best-practices-code-review について
SQLAlchemyとAlembicの開発・コードレビュー向けの実践的なガイド集です。スキーマ変更、マイグレーション、クエリ性能を扱う開発者を対象に、インデックスや制約を安全に操作する方法を重視します。
主な機能
- 01安全なAlembicマイグレーションの指針
- 02並行インデックス操作の実践
- 03外部キーとチェック制約の段階的追加
- 04カラム型の段階的な変更
- 05クエリのインデックス確認と重複検査
活用シーン
- 01マイグレーションのロックリスクを確認
- 02影響を抑えてインデックスを追加
- 03段階的なカラム型変更
- 04クエリパターンと定義済みインデックスの照合
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ midudev/ autoskills --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 対応