prisma generate を実行したにもかかわらず、以下のエラーが表示されて困っていませんか?
一見すると「prisma generate を実行すれば解決する」と思ってしまいますが、generate を実行しても同じエラーが発生しました。
原因はPrisma Client の生成先がPrisma Client の生成先と、コードから読み込もうとしている場所が一致していないことでした。
開発環境
今回の開発環境は以下のとおりです。
- Next.js
- Prisma
6.19.3 @prisma/client6.19.3- NextAuth.js
@next-auth/prisma-adapter1.0.7- Neon PostgreSQL
NextAuth.js と Prisma Adapter を使用して、Google ログインの認証機能を実装しています。
エラーが発生した背景
Prisma Schema に NextAuth.js 用の認証モデルを追加した後、Prisma Adapter と Prisma Client を接続するために lib/prisma.ts を作成しました。
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
export default prisma;このファイルで PrismaClient を読み込み、NextAuth.js の設定から Prisma Adapter に渡す構成にしています。
その後、NextAuth.js のログイン API を確認するため、
http://localhost:3000/api/auth/signin
にアクセスしました。
すると、HTTP 500 エラーが発生し、ターミナルには以下のエラーが表示されました。

最初に確認したこと
エラーメッセージには、
Please run “prisma generate”
と書かれていたため、まず Prisma Client を生成しました。
npx prisma generate実行すると、エラーにはならず、以下のように表示されました。

つまり、prisma generate 自体は正常に実行されています。
それでも /api/auth/signin にアクセスすると、同じエラーが発生しました。
Prisma Client のバージョンを確認
次に、Prisma と @prisma/client のバージョンを確認しました。
npm list prisma @prisma/client結果:

Prisma と @prisma/client はどちらも 6.19.3 でした。
そのため、今回は Prisma と @prisma/client のバージョンが一致していないことが原因ではありませんでした。
原因
ここで重要だったのが、prisma generate の結果です。
• Generated Prisma Client (6.19.3) to ./app/generated/prisma in 45msPrisma Client は以下の場所に生成されていました。
app/generated/prisma一方、lib/prisma.ts では、@prisma/client から PrismaClient を読み込んでいます。
import { PrismaClient } from "@prisma/client";つまり、今回確認できた状態は以下のようになっていました。
このため、Prisma Client の生成先と、アプリケーションが Prisma Client を読み込んでいる場所が一致していないことが分かりました。

対策方法
この問題を解決するために、Prisma Client の生成先と import 先が一致するように設定しました。
対策方法:schema.prisma の output 設定を変更する
特別な理由がない限り、Prisma Client はデフォルトの場所(node_modules/.prisma/client)に生成するのが最もシンプルでトラブルが少ないです。
prisma/schema.prisma ファイルを開き、generator client ブロックの output 指定を削除(またはコメントアウト)します。
// prisma/schema.prisma
generator client {
provider = "prisma-client-js"
// output = "../app/generated/prisma" ← この行を削除またはコメントアウト
}修正後、再度 generate コマンドを実行します。
npx prisma generateこれにより、import { PrismaClient } from "@prisma/client"; で正常に読み込めるようになります。

まとめ
Prisma で同じエラーが発生した場合、最初からパッケージを再インストールするのではなく、まず以下を確認する。
1. Prisma Client を生成する
npx prisma generate
2. Prisma のバージョンを確認する
npm list prisma @prisma/client
3. Prisma Client の生成先を確認する
Generated Prisma Client to ...
というメッセージを確認する。
4. import の場所を確認する
import { PrismaClient } from "@prisma/client";
など、アプリケーション側でどこから PrismaClient を読み込んでいるか確認する。
Prisma Client の生成先と、コードから PrismaClient を読み込んでいる場所が一致しているか確認することが重要です。
