drizzle-orm について
drizzle-ormの1.0リリース候補版を使う開発者向けのスキルです。drizzle-kit、drizzle-seed、バリデーター、Effectドライバーを含め、RC版に合わせたバージョン選択、クエリ、マイグレーション、検証を案内します。
主な機能
- 01ORM、Kit、Seedのバージョン確認
- 02スキーマ定義とSQLクエリの案内
- 03RQBv2のリレーションクエリ解説
- 04マイグレーション、生成、シードの案内
- 05バリデーターとEffectドライバーの解説
活用シーン
- 01新規プロジェクトでDrizzle 1.0 RCを設定
- 020.xのプロジェクトをRCへアップグレード
- 03マイグレーションを生成してテストDBで検証
- 04CIでKitコマンドを実行
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill drizzle-ormインストール後、Claude Code で/drizzle-ormを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/drivers-upgrade.mdeffect-integration.mdkit-migrations.mdrelations-rqb.mdschema-queries.mdseed-validators.mdsource-map.mdusage-guide.md詳細
Drizzle ORM(1.0 RC)
Drizzle の 1.0 リリース候補(drizzle-orm@rc、現在は 1.0.0-rc.4)に加え、drizzle-kit、drizzle-seed、同梱のバリデーター、Studio、および公式の Effect ドライバーでこのスキルを使用します。
新しい作業では、npm の latest(0.45.x/kit 0.31.x)を現行版として扱わないでください。ORM、Kit、Seed はまとめて rc チャンネルに固定してください。安定版の 1.0.0 はまだリリースされていません。rc5 形式の dist-tag はコミットのプレビューであり、RC ラインではありません。
ワークフロー
- ローカルの Drizzle 環境を確認します。
drizzle-orm、drizzle-kit、drizzle-seed、eslint-plugin-drizzleの正確なバージョン/dist-tag。- 方言とドライバーのエントリーポイント(
postgres-js、neon-http、bun-sql、libsql、effect-postgres、…)。 - スキーマファイル、
defineRelations、drizzle.config.ts、マイグレーションフォルダーの構成(v3 フォルダーか従来のジャーナルか)。 - Effect(
effect4.x +drizzle-orm/effect-*)と Promise ドライバーのどちらを使用しているか。
- インストール、日常的な使い方、ベースライン、トラブルシューティングについては、まず usage-guide.md に従います。
- バージョンに変更があった場合や、タスクが RQBv2、Kit v3 マイグレーション、コーデック、Effect に関わる場合は、ドキュメントを更新します。source-map.md から始めてください。
- 詳細は以下を参照します。
- スキーマと SQL クエリビルダー:schema-queries.md。
- RQBv2 の
defineRelations/db.query:relations-rqb.md。 - Kit CLI、設定、generate/migrate/push/pull/studio:kit-migrations.md。
- Seed + Zod/Valibot/TypeBox/ArkType/Effect Schema:seed-validators.md。
- Effect ドライバーと
@effect/sql-drizzleの比較:effect-integration.md。 - ドライバーの一覧と 0.x → RC のアップグレード:drivers-upgrade.md。
- ユーザーから切り替えを求められない限り、プロジェクトの方言とドライバーを維持します。
- 必要最小限のクエリ、
bunx drizzle-kit check/generate --explainのようなドライラン、または破棄可能な DB への対象を絞った migrate で検証します。
基本的な判断
- 新しい Drizzle 1.0 の作業では、必ず
@rcをインストールします。bun add drizzle-orm@rcとbun add -D drizzle-kit@rcを実行します。RC の ORM と Kit0.31.xを混在させないでください。 - RQBv1 は廃止されています。
defineRelations(schema, …)を使い、{ relations }をdrizzle()に渡します。db.queryでは、テーブルごとのrelations()と{ schema }の組み合わせを使わないでください。 - JOIN/集計には SQL クエリビルダーを優先し、ネストされたグラフには RQB を優先します。
- ケーシングを指定するのは
drizzle({ casing })ではなく、テーブル(snakeCase.table/camelCase.table)です。 - 本番環境のスキーマ変更では、generate → migrate の順に実行します。push はローカルでのプロトタイピングに限って使用し、最初に
--explainを実行します。 - 0.x から移行した後は、
bunx drizzle-kit upを一度実行して、マイグレーションフォルダーを v3 形式(journal.jsonなし)に変換します。 - バリデーターは同梱されています。
drizzle-orm/zod、…/valibot、…/typebox、…/arktype、…/effect-schemaを使います。RC ではスタンドアロンの[email protected]を避けてください。 - RC で Effect を使う場合は、
drizzle-orm/effect-*+ Effect v4 を使用します(latestのeffect4.0 安定版と、それに対応する@effect/sql-*4.x)。effect@betaタグは古いプレリリースになったため、インストールしないでください。RC と@effect/sql-drizzleを組み合わせないでください(Effect v3/drizzle<0.50専用です)。 - Kit を非対話形式/CI/エージェントで実行する場合は、
--output jsonを使い、プロンプトに回答する代わりに--hints/--hints-fileで名前変更/データ損失に関する判断を渡します。コードからはdrizzle-kit/cliSDK を呼び出してください。 $inferSelect/$inferInsert(別名:InferSelectModel/InferInsertModel)を優先します。
検証
リポジトリで定義されているコマンドを優先してください。Drizzle RC に関する実質的な作業では、関連する項目を確認してください。
- スキーマ、リレーション、クライアントファクトリーの型チェック。
- 実 DB またはテスト DB に対する、絞り込んだ insert/select/update/delete、または
db.query.*.findMany。 bunx drizzle-kit generateを実行して SQL を確認し、使い捨て DB でmigrateを実行し、ブランチ間の競合についてcheckを実行します。- シード:本番以外のデータベースでのみ
reset+seedを実行します。 - Effect のパス:
PgClient(または dialect)のレイヤーを提供し、Effect プログラムをエンドツーエンドで 1 つ実行します。 - 0.x のアップグレード後:RQBv2 の書き換え、casing ビルダー、migrator folder v3、codec の影響を受けるカラム(arrays、timestamps、JSON)を確認します。
実行したチェックと実行しなかったチェック、および残っている @rc と latest に関する前提を報告してください。
コメント
Markdown 対応