prisma-orm-v7-skills について
prisma-orm-v7-skillsは、Prisma ORM 7への移行を支援する開発者やエージェント向けのリファレンススキルです。設定、クライアント生成、データベースアダプターなどの破壊的変更と移行手順をまとめています。
主な機能
- 01Prisma 7へのアップグレードチェックリスト
- 02ESMとバージョン要件
- 03スキーマとクライアント生成の変更
- 04Prisma Configへの移行案内
- 05データベースドライバーアダプターの設定
活用シーン
- 01旧Prismaバージョンからの移行を計画
- 02ジェネレーターとクライアントのインポート先を更新
- 03データソース設定をprisma.config.tsへ移す
- 04データベースクライアントの初期化方法を変更
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ gocallum/ nextjs16-agent-skills --skill prisma-orm-v7-skillsインストール後、Claude Code で/prisma-orm-v7-skillsを入力して読み込まれたか確認します。
詳細
リンク
- アップグレードガイド(v7):https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-7
- Prisma Config リファレンス:https://www.prisma.io/docs/orm/reference/prisma-config-reference
- Prisma Client Extensions:https://www.prisma.io/docs/orm/prisma-client/client-extensions
- Prisma 7 移行プロンプト(AI エージェント):https://www.prisma.io/docs/ai/prompts/prisma-7
アップグレード
# Upgrade packages
pnpm add @prisma/client@7
pnpm add -D prisma@7
破壊的変更(v7)
最小バージョン
- Node.js:20.19.0 以上(および 22.x)
- TypeScript:5.4.0 以上
Prisma が ESM に対応
- Prisma ORM は ES モジュールとして提供されます。
package.jsonに"type": "module"を設定するか、プロジェクトを ESM に移行してください。- TypeScript プロジェクトは ESM をコンパイル/解決できる必要があります(ガイドの例:
module: ESNext、target: ES2023、moduleResolution: node)。
Prisma スキーマと生成に関する変更
- ジェネレータープロバイダー:
prisma-client-js→prisma-client。 generator clientでoutputが必須になりました。- Prisma Client は、デフォルトで
node_modulesに生成されなくなりました。 npx prisma generateの実行後、インポート先を生成された出力パスに更新してください(例:import { PrismaClient } from './generated/prisma/client')。
スキーマのデータソースに関する非推奨化:
schema.prismaのurl、directUrl、shadowDatabaseUrlは非推奨になりました。- データソースの設定を
prisma.config.ts(Prisma Config)に移してください。 - マイグレーションで
directUrlを使用していた場合は、CLI のマイグレーション接続文字列をprisma.config.tsに設定してください。
Prisma Client でドライバーアダプターが必須に(新しいインスタンス化方法)
- すべてのデータベースで、Prisma Client の作成時にドライバーアダプターが必要になりました。
- アダプターの例:
- Postgres:
@prisma/adapter-pg(直接 DB 接続文字列を使ってPrismaPgを使用) - SQLite:
@prisma/adapter-better-sqlite3
- Postgres:
Prisma Accelerate ユーザー(v6 → v7)
prisma://またはprisma+postgres://(Accelerate URL)をドライバーアダプターに渡さないでください。- Accelerate URL はそのまま使用し、代わりに Accelerate 拡張機能を使って Prisma Client をインスタンス化してください。
環境変数はデフォルトで読み込まれなくなりました
- Prisma CLI は v7 で
.envファイルを自動的に読み込まなくなりました。 - 環境変数を明示的に読み込んでください(例:
prisma.config.tsでimport 'dotenv/config'を実行するか、スクリプト内で環境変数を読み込みます)。 - Bun ユーザー:変更は不要です(Bun は
.envを自動的に読み込みます)。
Prisma CLI の設定先が prisma.config.ts に移動
- Prisma Config が、Prisma CLI の動作を設定するデフォルトの場所になりました。
- プロジェクトのルート(
package.jsonの隣)にprisma.config.tsを配置してください。 - スキーマのパス、マイグレーションのパス/シード、データソース URL をそこで設定してください。
クライアントミドルウェアの削除
prisma.$use(...)は削除されました。- ミドルウェアのロジックを Prisma Client Extensions に移行してください。
Client Extensions からメトリクスを削除
- Metrics のプレビュー機能は v7 で削除されました。
- データベースドライバー/アダプターを使うか、拡張機能を使ってカスタムカウンターを実装してください。
マイグレーション/シード/生成の動作変更
prisma migrate dev/prisma migrate resetの実行後にシードが自動実行されなくなりました。- シードを明示的に実行してください:
pnpm prisma db seed(またはpnpm exec prisma db seed)。
- シードを明示的に実行してください:
--skip-generateと--skip-seedフラグは削除されました。prisma migrate devとprisma db pushは、prisma generateを自動実行しなくなりました。pnpm prisma generate(またはpnpm exec prisma generate)を明示的に実行してください。
Prisma 固有の環境変数の削除
- 次の環境変数が削除されました:
PRISMA_CLI_QUERY_ENGINE_TYPEPRISMA_CLIENT_ENGINE_TYPEPRISMA_QUERY_ENGINE_BINARYPRISMA_QUERY_ENGINE_LIBRARYPRISMA_GENERATE_SKIP_AUTOINSTALLPRISMA_SKIP_POSTINSTALL_GENERATEPRISMA_GENERATE_IN_POSTINSTALLPRISMA_GENERATE_DATAPROXYPRISMA_GENERATE_NO_ENGINEPRISMA_CLIENT_NO_RETRYPRISMA_MIGRATE_SKIP_GENERATEPRISMA_MIGRATE_SKIP_SEED
MongoDB のサポート
- Prisma ORM 7 はまだ MongoDB をサポートしていません。MongoDB が必要な場合は、Prisma ORM 6 を引き続きご利用ください。
アップグレードチェックリスト(クイック)
- パッケージをアップグレードし、Node/TypeScript のバージョンを確認します。
- ESM に移行します(または、ESM を使用できるようにランタイム/ビルドを調整します)。
schema.prismaのジェネレーターをprovider = "prisma-client"に更新し、outputを設定します。pnpm prisma generateを実行し、Prisma Client のインポートを生成された出力パスに更新します。- リポジトリのルートに
prisma.config.tsを追加し、データソース設定を移動して環境変数を明示的に読み込みます。 - (Accelerate を使用する場合を除き、)Prisma Client のインスタンス化をドライバーアダプターを使用するように更新します。
- ワークフローを更新し、
pnpm prisma generateとpnpm prisma db seedを明示的に実行します。
コメント
Markdown 対応