drizzle-database について
Drizzle ORMのスキーマ、クエリ、マイグレーションを実装・レビューするスキルです。既存のプロジェクト規約に沿い、マイグレーションと関連テストで変更を検証します。
主な機能
- 01既存のスキーマ・クエリ規約を踏襲
- 02リレーションと結合要件を明示
- 03マイグレーションの検証を案内
- 04変更箇所に関わるテストを実行
活用シーン
- 01Drizzleのテーブルやリレーションの追加・変更
- 02型付きDrizzleクエリの構成
- 03マイグレーション更新とDB変更のテスト
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ blogic-cz/ blogic-marketplace --skill drizzle-databaseインストール後、Claude Code で/drizzle-databaseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/migrations-and-testing.mdquery-patterns.mdschema-patterns.md詳細
Drizzle Database パターン
このスキルは、プロジェクトで一貫した型付け、リレーションのモデリング、マイグレーション/テストによる検証を適用して、Drizzle ORM のスキーマやクエリーコードを実装・レビューする際に使用します。
このスキルを使用する場合
次のような、Drizzle ORM のプリミティブを明示的に扱う作業で使用します。
pgTable(...)によるスキーマ定義relations(...)によるリレーション宣言- Drizzle の select/クエリービルダーの構成(
db.select、db.query.*) - Drizzle のマイグレーションとスキーマの進化
- Drizzle を利用するテスト向けの、型付けされたテスト DB のシードデータ作成
Drizzle の実装に関連しない、一般的な SQL/データベースの議論では、このスキルを使用しないでください。
標準ワークフロー
スキーマやクエリーを変更するたびに、次の手順を適用します。
- 対象リポジトリ内の近くにあるスキーマヘルパーと、既存の Drizzle パターンを調べます。
- 新しいスタイルを独自に作るのではなく、確立されたローカルパターン(型、命名、インデックス、リレーションのスタイル)を踏襲します。
- 必要最小限のスキーマ/クエリー変更を実装します。
- 生成または適用されたマイグレーションの内容が、変更と整合していることを確認します。
- 変更したテーブル/クエリー経路を検証する関連テストを実行します。
詳細な例については、以下をお読みください。
references/schema-patterns.mdreferences/query-patterns.mdreferences/migrations-and-testing.md
規約とルール
常に適用するルール
- リレーションの多重度(
oneとmany)を明示し、FK フィールドを参照先の ID と一致させます。 - オプションの結合と必須の結合を明示します(オプションの場合は
leftJoin、必須の場合はinnerJoin)。 - スキーマ変更後は、タスクの完了とみなす前にマイグレーションとテストを確認します。
プロジェクトの規約(ローカルのコードベースで別の確立されたパターンを使用している場合を除く)
- プロジェクトで使用されている場合は、カラムにブランド型/型付き ID を使用します。
id: text("id").primaryKey().$type<UserId>();
- 既存のテーブルでそのスタイルが使われている場合、生成 ID/タイムスタンプには
.$defaultFn(...)を優先します。
createdAt: timestamp("created_at")
.$defaultFn(() => new Date())
.notNull();
- ローカルのスキーマファイルでそのようにしている場合、インデックス/複合制約は
pgTableの第 3 引数に配置します。
(table) => [
index("sessions_user_id_idx").on(table.userId),
unique().on(table.userId, table.organizationId),
];
- コードベースがリレーショナルクエリーヘルパーに依存している場合は、完全なスキーマを
drizzle(...)に渡します。
クエリー戦略の指針
往復回数を減らし、ロジックを読みやすく保てる場合は、結合/SELECT 投影を使った単一の複合クエリーを優先します。
リレーションクエリーヘルパー(with を使った db.query.<table>.findMany/findFirst)で読み取りを明確に表現でき、型を簡潔に保ち、不必要なクエリーの複雑さを避けられる場合は、これを使用します。
リレーションクエリーヘルパーでは必要なフィルタリング、投影、集計を効率的に表現できない場合は、カスタムの結合/集計クエリーを使用します。
対象範囲の境界
このスキルは、Drizzle のスキーマ/クエリー/マイグレーションの実装パターンに焦点を当てます。
主な目的がパフォーマンス調査である場合は、より広範なデータベースパフォーマンスのトリアージや本番環境のインデックス戦略を process-db-report または performance-optimization に委ねます。
リソース
必要な場合にのみ、詳細な例を読み込みます。
references/schema-patterns.md- テーブル、リレーション、型付け、インデックスの詳細な例references/query-patterns.md- クエリー、結合、集計、変更操作の詳細な例references/migrations-and-testing.md- マイグレーションのワークフローとテスト/シードの例