mcpField
D
drizzle-orm

drizzle-orm

github.com/dobroslavradosavljevic開発344 回インストール2 日前に更新
リポジトリ

drizzle-orm について

drizzle-ormの1.0リリース候補版を使う開発者向けのスキルです。drizzle-kit、drizzle-seed、バリデーター、Effectドライバーを含め、RC版に合わせたバージョン選択、クエリ、マイグレーション、検証を案内します。

主な機能

  1. 01ORM、Kit、Seedのバージョン確認
  2. 02スキーマ定義とSQLクエリの案内
  3. 03RQBv2のリレーションクエリ解説
  4. 04マイグレーション、生成、シードの案内
  5. 05バリデーターとEffectドライバーの解説

活用シーン

  1. 01新規プロジェクトでDrizzle 1.0 RCを設定
  2. 020.xのプロジェクトをRCへアップグレード
  3. 03マイグレーションを生成してテストDBで検証
  4. 04CIでKitコマンドを実行

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dobroslavradosavljevic/skills --skill drizzle-orm

インストール後、Claude Code で/drizzle-ormを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
references/
drivers-upgrade.md
effect-integration.md
kit-migrations.md
relations-rqb.md
schema-queries.md
seed-validators.md
source-map.md
usage-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 ラインではありません。

ワークフロー

  1. ローカルの 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(effect 4.x + drizzle-orm/effect-*)と Promise ドライバーのどちらを使用しているか。
  2. インストール、日常的な使い方、ベースライン、トラブルシューティングについては、まず usage-guide.md に従います。
  3. バージョンに変更があった場合や、タスクが RQBv2、Kit v3 マイグレーション、コーデック、Effect に関わる場合は、ドキュメントを更新します。source-map.md から始めてください。
  4. 詳細は以下を参照します。
  5. ユーザーから切り替えを求められない限り、プロジェクトの方言とドライバーを維持します。
  6. 必要最小限のクエリ、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 と Kit 0.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 の effect 4.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/cli SDK を呼び出してください。
  • $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 に関する前提を報告してください。

コメント