mcpField
P
prisma-7

prisma-7

github.com/fusengine開発3463 回インストール2 週間前に更新
リポジトリ

prisma-7 について

Prisma 7 を使う開発者やコーディングエージェント向けのリファレンススキルです。設定、スキーマ、クエリ、移行、性能、安全性、デプロイを扱い、v6 からの破壊的変更も解説します。

主な機能

  1. 01Prisma 6 から 7 への移行ガイド
  2. 02スキーマ設計と型安全なクエリ
  3. 03CRUD、リレーション、トランザクション
  4. 04マイグレーションと性能の資料
  5. 05セキュリティとデプロイのガイド
  6. 06SOLID 準拠の TypeScript インターフェース資料

活用シーン

  1. 01プロジェクトを Prisma 6 から更新
  2. 02データモデルとクエリの設計
  3. 03安全なデータベース移行の計画
  4. 04デプロイや性能の問題の調査

MCP 対応

リファレンスには MCP Server の項目がありますが、このスキルが提供する MCP 機能の説明はありません。

インストール

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

$npx skills add https://github.com/fusengine/agents --skill prisma-7

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

詳細

Prisma 7 の Rust を使用しない TypeScript ORM について説明します。v6 から v7 への破壊的変更(プロバイダー名を `prisma-client-js` から `prisma-client` に変更、出力パスが必須に変更、インポート元が `@prisma/client` から生成先パスに変更、データベースドライバーアダプターが必須に変更――PostgreSQL の場合は `@prisma/adapter-pg` など――、設定を TypeScript 設定ファイルに移動――7.10 以降は `prisma7.config.ts`(フォールバックとして `prisma.config.*` も読み込み)、7.0~7.9 は `prisma.config.ts`)を扱います。また、スキーマモデリング、CRUD/リレーション/フィルタリング/ページネーション/トランザクション、型安全な生クエリを実現する TypedSQL、機密フィールドを除外する Omit API についても説明します。

さらに、マイグレーション(ベースライン設定、シャドウデータベース、スキーマの統合、ゼロダウンタイム)、パフォーマンス(N+1 の検出、コネクションプーリング、Accelerate)、セキュリティ(SQL インジェクションの防止、行レベルセキュリティ、暗号化)、データベース別ガイド(PostgreSQL、MySQL、SQLite、CockroachDB、Turso――MongoDB は 7.10 までの Prisma 7.x の全リリースでサポートされていないため、6.19 を使い続けてください)、フレームワークとの統合(Next.js、Astro、SvelteKit、Remix など)、Vercel/Netlify/Railway/AWS Lambda/Cloudflare Workers/Docker へのデプロイも扱います。スキーマ設計向けの SOLID 準拠の TypeScript インターフェースのリファレンスも含みます。Better Auth 独自のデータベースアダプター設定(better-auth)については詳しく扱いません。このスキルの対象は ORM レイヤー自体です。

Prisma 7 ORM

バンドルサイズを 90%削減し、クエリを 3 倍高速化する、Rust を使用しない TypeScript ORM です。

エージェントのワークフロー(必須)

実装の前に、必ず 3 つのエージェントを並列で起動してください。それぞれ name を指定して Agent を 1 回ずつ呼び出します。

  1. fuse-ai-pilot:explore-codebase - 既存のスキーマとデータベースのパターンを分析します
  2. fuse-ai-pilot:research-expert - Context7/Exa を使って Prisma 7 の最新ドキュメントを確認します
  3. mcp__context7__query-docs - 破壊的変更とマイグレーションガイドを確認します

実装後、検証のために fuse-ai-pilot:sniper を実行してください。


概要

使用する場面
  • Next.js 16 アプリケーションでのデータベースアクセス
  • TypeScript の完全な推論を備えた型安全なクエリ
  • スキーマファーストのデータベースモデリングとマイグレーション
  • TypedSQL を必要とする複雑なクエリ
  • Omit API による機密フィールドの除外
Prisma 7 を選ぶ理由
機能メリット
Rust を使用しないクライアントバンドルサイズを 90%削減(14MB → 1.6MB)
クエリパフォーマンス大規模なデータセットで最大 3 倍高速
ESM ファーストネイティブ ES モジュール、モダンなアーキテクチャ
TypedSQL型安全な生 SQL クエリ
Omit API機密フィールドをグローバルに除外
ドライバーアダプターデータベースドライバーとの直接統合

v6 からの破壊的変更

重要なマイグレーション項目
変更点v6v7
プロバイダーprisma-client-jsprisma-client
出力パス任意必須
インポート@prisma/client./generated/prisma/client
ドライバー組み込みアダプターが必須
設定スキーマのみprisma7.config.ts(7.10 以降。prisma.config.* にフォールバック);prisma.config.ts(7.0~7.9) — prisma init が作成したファイルを編集してください
必須のスキーマ変更

プロバイダーには prisma-client を指定し、出力パスを明示してください。node_modules への生成は行われなくなりました。

ドライバーアダプターが必須

PostgreSQL では @prisma/adapter-pg、MySQL では @prisma/adapter-mariadb、SQLite では @prisma/adapter-better-sqlite3 が必要です。

主な 7.x マイナーリリース(現在の安定版:7.10.0)
バージョン変更点
7.4Prisma Client のクエリプランキャッシュ、partialIndexes プレビュー機能(@@index(..., where: raw("...")))
7.5セーブポイントによるネストされたトランザクションのロールバック
7.6prisma postgres link、@prisma/adapter-pg が接続文字列を直接受け付けるように
7.7prisma bootstrap コマンド
7.8PrismaClient の queryPlanCacheMaxSize オプション(0 でキャッシュを無効化)
7.9CLI のタブ補完、AI エージェントの安全性チェックを db push --accept-data-loss に拡張、7.0 からの TypeScript パフォーマンス低下を修正
7.10Prisma Studio を 127.0.0.1 にバインドし、オリジンをチェック、@prisma/adapter-mariadb が既存のプールを受け付けるように

Prisma 8 はリリース候補版のみです(npm の latest タグは 8.0.0-rc.* を指しています)。安定版をインストールするには、prisma@7 / @prisma/client@7 を固定してください。


SOLID アーキテクチャ

モジュール構成

データベースコードは modules/cores/db/ にまとめられています。

  • modules/cores/db/prisma.ts - PrismaClient のシングルトン
  • modules/cores/db/generated/ - 生成されたクライアント
  • prisma/schema.prisma - スキーマ定義
  • prisma/migrations/ - マイグレーション履歴
  • prisma7.config.ts - Prisma の設定(7.0~7.9:prisma.config.ts)
ファイル構成
ファイル用途
prisma.tsシングルトンクライアント
schema.prismaモデル、リレーション
seed.tsデータベースのシード

主な概念

シングルトンパターン(Next.js)

ホットリロード時に複数の PrismaClient インスタンスが作成されるのを防ぎます。開発時には globalThis を使用してインスタンスをキャッシュします。

出力先パス

生成されたクライアントは node_modules ではなく、カスタムパスに出力されます。生成されたフォルダーからインポートしてください。

ドライバーアダプター

パフォーマンスと制御性を向上させるため、データベースドライバーを直接統合します。接続プーリングはドライバーレベルで設定します。

TypedSQL

型安全性を完全に保ちながら、生の SQL を記述できます。クエリに基づいて結果に型が付与されます。

Omit API

フィールドをグローバルまたはクエリごとに除外できます。パスワードや機密データに最適です。


リファレンスガイド(130 ファイル)

基本設定
必要な項目リファレンス
初期設定installation.md
PrismaClient のシングルトンclient.md
クライアント API メソッドclient-api.md
設定prisma-config.md
CLI コマンドcli-reference.md
エディターの設定editor-setup.md
スキーマとモデリング
必要な項目リファレンス
スキーマ設計schema.md
スキーマ構文schema-reference.md
データモデリングdata-modeling.md
フィールド属性field-attributes.md
モデル属性model-attributes.md
列挙型enums.md
デフォルト値default-values.md
複合型composite-types.md
スカラーリスト/配列scalar-lists.md
参照アクションreferential-actions.md
クエリと操作
必要な項目リファレンス
CRUD 操作queries.md
リレーションrelations.md
フィルタリングfiltering.md
ソートsorting.md
Select と Includeselect-include.md
ページネーション(カーソル)pagination-cursor.md
ページネーション(オフセット)pagination-offset.md
Distinctdistinct.md
Count と existscount-exists.md
大文字と小文字の区別case-sensitivity.md
集計aggregations.md
トランザクションtransactions.md
高度なクエリ
必要な項目リファレンス
TypedSQLtypedsql.md
生のクエリraw-queries.md
JSON フィールドjson-fields.md
全文検索full-text-search.md
ビューviews.md
ストアドプロシージャstored-procedures.md
トリガーtriggers.md
制約constraints.md
高度なインデックスindexes-advanced.md
Migrations
NeedReference
Migration workflowmigrations.md
Seedingseeding.md
Baseliningbaselining.md
Shadow databaseshadow-database.md
Migration historymigration-history.md
Squashingsquashing.md
Hotfixinghotfixing.md
Down migrationsdown-migrations.md
Data migrationsdata-migrations.md
Zero-downtimezero-downtime.md
Performance
NeedReference
Optimizationoptimization.md
Query optimizationquery-optimization.md
N+1 problemn-plus-one.md
Batchingbatching.md
Lazy loadinglazy-loading.md
Caching strategiescaching-strategies.md
Connection limitsconnection-limits.md
Cold startscold-starts.md
Bundle sizebundle-size.md
Accelerateaccelerate.md
Connection poolingconnection-pooling.md
Security
NeedReference
Connection URLsconnection-urls.md
Environment variablesenvironment-variables.md
SSL/TLSssl-tls.md
SQL injectionsql-injection.md
Row-level securityrow-level-security.md
Encryptionencryption.md
Audit loggingaudit-logging.md
GDPR compliancegdpr-compliance.md
Databases
NeedReference
PostgreSQLpostgresql.md
MySQLmysql.md
SQLitesqlite.md
MongoDB (deprecated)mongodb.md
CockroachDBcockroachdb.md
PlanetScaleplanetscale.md
Supabasesupabase.md
Neonneon.md
Tursoturso.md
Extensions & Integrations
NeedReference
Extensionsextensions.md
Driver adaptersdriver-adapters.md
Omit APIomit-api.md
Middleware (deprecated)middleware.md
Soft deletesoft-delete.md
Read replicasread-replicas.md
Multi-databasemulti-database.md
Multi-schemamulti-schema.md
Framework Integrations
NeedReference
Next.jsnextjs-integration.md
Astroastro.md
Nuxtnuxt.md
SvelteKitsveltekit.md
SolidStartsolidstart.md
Remixremix.md
React Routerreact-router.md
Honohono.md
Expressexpress.md
Auth Integrations
NeedReference
Clerkclerk.md
Auth.jsauthjs.md
Better Authbetterauth.md
Permit.iopermit-io.md
Deployment
NeedReference
Deployment guidedeployment.md
Vercelvercel.md
Netlifynetlify.md
Railwayrailway.md
Renderrender.md
Fly.ioflyio.md
AWS Lambdaaws-lambda.md
Cloudflare Workerscloudflare-workers.md
Dockerdocker.md
Herokuheroku.md
Deno Deploydeno-deploy.md
Tooling
NeedReference
VS Codevscode.md
GitHub Copilotgithub-copilot.md
Tabninetabnine.md
SafeQLsafeql.md
Prisma AIprisma-ai.md
MCP Servermcp-server.md
Turborepoturborepo.md
pnpm workspacespnpm-workspaces.md
Monitoring
NeedReference
Error handlingerror-handling.md
Error codeserror-codes.md
Logginglogging.md
OpenTelemetryopentelemetry.md
DataDogdatadog.md
Studiostudio.md
Testingtesting.md
ORM Comparisons
NeedReference
vs TypeORMvs-typeorm.md
vs Sequelizevs-sequelize.md
vs Drizzlevs-drizzle.md
vs Mongoosevs-mongoose.md
vs Kyselyvs-kysely.md
Migration Guides
NeedReference
From TypeORMmigrate-from-typeorm.md
From Sequelizemigrate-from-sequelize.md
From Drizzlemigrate-from-drizzle.md
TypeScript インターフェース(SOLID)

references/interfaces/ には、実装とは分離された、SOLID に準拠する Prisma 7 スキーマ設計用の型定義があります。型付きスキーマコードの作成またはレビュー時に読み込んでください。

必要な内容リファレンス
すべてのインターフェースファイルの概要interfaces/INDEX.md
スキーマ型:GeneratorConfig、ModelDefinition、FieldAttribute、EnumDefinitioninterfaces/schema.types.md
データモデリング型:正規化、多重度interfaces/data-modeling.types.md
Enum 型:値の定義、ステータス/ロールのパターンinterfaces/enums.types.md
フィールド属性型:識別子、一意性、デフォルト、マッピングinterfaces/field-attributes.types.md
モデル属性型:複合キー、複合インデックスinterfaces/model-attributes.types.md
リレーション型:一対一、参照アクション、カスケードinterfaces/relations.types.md
マイグレーション型:ワークフロー、デプロイ、シーディングinterfaces/migrations.types.md

ベストプラクティス

  1. Next.js でのシングルトン - PrismaClient を globalThis にキャッシュします
  2. 出力パスが必須 - node_modules には生成しないでください
  3. ドライバーアダプター - パフォーマンス向上のため、ネイティブドライバーを使用します
  4. 機密フィールドを除外 - パスワードにはグローバルな omit を設定します
  5. 複雑なクエリには TypedSQL - Prisma で表現できないクエリに使用します
  6. インデックスの検証 - N+1 の問題がないか、クエリプランを確認します

禁止されているパターン

パターン理由代替案
@prisma/client からインポートするv7 では生成先のパスが必須です./generated/prisma/client からインポートする
prisma-client-js プロバイダーv7 で非推奨ですprisma-client を使用する
出力パスを指定しないv7 では必須ですgenerator に output を設定する
MongoDBv7.x(7.0-7.10)ではサポートされていませんPrisma 6.19 を使い続ける
datasource 内の url非推奨です設定ファイルを使用する(7.10 以降は prisma7.config.ts、7.0~7.9 は prisma.config.ts)

コメント