mcpField
D
drizzle-best-practices

drizzle-best-practices

github.com/honra-ioデータ・データベース22694 回インストール22 週間前に更新
リポジトリ

drizzle-best-practices について

Drizzle ORM と PostgreSQL を使う開発者向けのベストプラクティススキルです。スキーマ、クエリ、マイグレーション、型、安全性、性能を扱い、バージョンごとの API の違いも説明します。

主な機能

  1. 01Drizzle のバージョン別 API 案内
  2. 02スキーマとクエリパターン
  3. 03リレーションとマイグレーションの指針
  4. 04TypeScript の型安全性に関する助言
  5. 05性能とデータベースドライバーの指針

活用シーン

  1. 01PostgreSQL のスキーマや CRUD クエリの作成
  2. 02Drizzle v1 と旧 API の構文選択
  3. 03drizzle-kit のマイグレーション設定
  4. 04クエリやデータベースドライバーの実践方法の選択

インストール

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

$npx skills add https://github.com/honra-io/drizzle-best-practices --skill drizzle-best-practices

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

同梱ファイル

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

.gitignore
AGENTS.md
CLAUDE.md
README.md
LICENSE
evals/
evals.json
evals/fixtures/eval-2/
package.json
references/
_sections.md
advanced-dynamic-queries.md
advanced-sql-operator.md
migrations-config.md
perf-prepared-statements.md
query-filters-operators.md
driver-serverless.md
driver-postgres.md
migrations-workflow.md
perf-batch-operations.md
query-error-handling.md
engine-postgres.md
query-mutations.md
schema-column-types.md
schema-table-definitions.md
schema-indexes-constraints.md
types-custom-types.md
types-inference.md
query-select-patterns.md
relations-defining.md
types-validators.md
relations-querying.md

詳細

Drizzle ORM のベストプラクティス(PostgreSQL)

Drizzle ORM と PostgreSQL を使用するための包括的なベストプラクティスガイドです。8 つのカテゴリにわたるガイダンスを、正確で高パフォーマンスかつ保守しやすいデータベースコードを書くために、影響度の高い順にまとめています。

バージョンと API の確認(最初にお読みください)

Drizzle は v1 への移行の途中であり、relations とリレーショナルクエリの API は、2 つのメジャー系列で異なります。コードを書く前に、プロジェクトの package.json を確認し、適切な構文を使用してください。

インストール済みの drizzle-orm使用する APIインストールコマンド
^1.0.0-rc または ^1.0.0-betav1 — このスキルでのデフォルトです。 defineRelations、オブジェクト構文のリレーショナルクエリ(where: { … }、orderBy: { … })、drizzle-orm/zod のバリデーターnpm i drizzle-orm@rc + npm i -D drizzle-kit@rc
^0.4x(例:0.45.2)レガシーです。 relations() ヘルパー、コールバック/演算子を使うリレーショナルクエリ、別パッケージの drizzle-zod に含まれるバリデーターnpm i drizzle-orm(0.45.2 が解決されます)

現在のリリース候補は [email protected](@rc タグ)です。これは、ドキュメントで今も一部参照されている古い @beta タグの後継です。

エージェントがつまずきやすい点は、次の 3 つです。

  • @latest はまだ v1 ではなく、0.45.2 です。 npm i drizzle-orm では v1 はインストールされません。v1 API を使用する新しいプロジェクトでは、明示的に @rc を指定する必要があります。
  • SQL に似たクエリビルダーは、どのバージョンでも変わりません。 db.select().from(t).where(eq(t.id, 1))、db.insert()、db.update()、db.delete() は、0.45.x と v1 で同じように動作します。変更されたのはリレーショナルクエリ API(db.query)とリレーションの 定義 だけです。db.select() の演算子フィルターを、リレーショナルオブジェクト構文に書き換えないでください。
  • v1 では、リレーショナルクエリ API(db.query)は defineRelations によって機能します。 レガシーの schema を渡しても、db.query は設定されません。既存のリレーションモジュールを移行中もコンパイルできるように、古い relations() ヘルパーは drizzle-orm/_relations から引き続きインポートできます。ただし、v1 でリレーショナルクエリを実行するには、defineRelations に変換する必要があります。(以前のベータ版では db._query という経路が公開されていましたが、1.0.0-rc.3 より前に削除されました。)詳しくは references/relations-defining.md を参照してください。

バージョンが明記されていない場合、新しいコードでは v1(RC) をデフォルトにしてください。ただし、既存のコードベースでレガシーの relations() やコールバック形式の db.query が使われている場合は、その API に合わせてください。リファレンスファイルでは、バージョン固有の違いに 「Legacy (v0.45.x)」 の注記が付いています。

適用する場面

次の作業では、これらのガイドラインを参照してください。

  • pgTable を使ったテーブルスキーマの定義
  • select、insert、update、delete クエリの作成
  • defineRelations またはレガシーの relations API を使ったテーブル間のリレーションの設定
  • マイグレーション(generate、push、pull)用の drizzle-kit の設定
  • スキーマからの TypeScript 型の推論
  • SQL に似た API とリレーショナルクエリ API の選択
  • プリペアドステートメントや一括操作によるクエリパフォーマンスの最適化
  • サーバーレスの Postgres プロバイダー(Neon、Supabase など)との Drizzle の統合

優先度別のルールカテゴリ

優先度カテゴリ影響度接頭辞
1スキーマ設計重大schema-
2クエリパターン重大query-
3リレーション高relations-
4マイグレーション高migrations-
5型安全性中〜高types-
6パフォーマンス中perf-
7データベースドライバー中driver-
8高度なパターン低advanced-

使用方法

詳しい説明とコード例については、個別のリファレンスファイルをお読みください。

references/engine-postgres.md          # Postgres-specific types, features, and patterns
references/schema-table-definitions.md
references/query-select-patterns.md
references/relations-defining.md
references/_sections.md                # Full index of all references

各リファレンスファイルには、次の内容が含まれています。

  • 重要である理由の簡単な説明
  • 説明付きの誤ったコード例
  • 説明付きの正しいコード例
  • Drizzle の公式ドキュメントへのリンク

References

コメント