😊

VercelデプロイでPrismaのエラーが出たときの対処法

に公開

状況

Next.jsアプリをVercelにデプロイしようとしたら、以下のようなエラーが出てしまいました。
解決方法を備忘録として残しておきます。

Error [PrismaClientInitializationError]: Prisma has detected that this project was built on Vercel, which caches dependencies. This leads to an outdated Prisma Client because Prisma's auto-generation isn't triggered.

原因を調べてみると、Vercelの依存関係キャッシュとPrisma Clientの生成タイミングに問題があることがわかりました。

どうやって解決するの?

package.jsonのビルドスクリプトを修正して、ビルド時にprisma generateを実行するようにします。
さらに、postinstallスクリプトも追加して、依存関係インストール後にもprisma generateが実行されるようにします。

実装方法

package.jsonを以下のように修正します:

{
  "scripts": {
    "dev": "next dev",
    "build": "prisma generate && next build",  // ここを修正
    "start": "next start",
    "lint": "next lint",
    "postinstall": "prisma generate"  // これを追加
  }
}

参考にしたサイト

Discussion