できない.dev

Prisma で「@prisma/client did not initialize yet」が解決できない(prisma generate 未実行)

Prisma Client がまだ生成されていないと @prisma/client did not initialize yet が出る。
スキーマ変更後やデプロイ時の依存インストール後に prisma generate を実行し、生成物を最新化すれば解消する。

公開: 更新:

実行例あり(2026-09-19 に実環境で検証)

要約

@prisma/client did not initialize yet. Please run "prisma generate" は、Prisma Client のコードがまだ生成されていない状態でクライアントを import したときに出る。

Prisma はスキーマ(schema.prisma)から型付きクライアントを prisma generate で生成する設計のため、生成ステップが抜けると初期化前として弾かれる。

スキーマ変更後やデプロイ時の依存インストール後に prisma generate(公式: Generating Prisma Client(新しいタブで開く))を走らせれば解消する。

実行例

generate 前は @prisma/client did not initialize yet で停止し、npx prisma generate を通すと起動するものの、後から追加した post モデルは undefined のままだった。
postinstall に prisma generate を置いて npm install を流し直すと post も解決している。

$ node index.js 2>&1 | head -n 5
/tmp/tmp.xzJwUr9yH7/node_modules/.prisma/client/default.js:43
    throw new Error('@prisma/client did not initialize yet. Please run "prisma generate" and try to import it again.');
    ^
 
Error: @prisma/client did not initialize yet. Please run "prisma generate" and try to import it again.
$ npx prisma generate
Prisma schema loaded from prisma/schema.prisma
 
✔ Generated Prisma Client (v6.19.3) to ./node_modules/@prisma/client in 29ms
 
Start by importing your Prisma Client (See: https://pris.ly/d/importing-client)
 
Tip: Interested in query caching in just a few lines of code? Try Accelerate today! https://pris.ly/tip-3-accelerate
$ node index.js
user: object / post: undefined
$ echo $?
0
$ node index.js
user: object / post: undefined
$ npm pkg get scripts
{
  "test": "echo \"Error: no test specified\" && exit 1",
  "postinstall": "prisma generate"
}
$ npm install --no-audit --no-fund
> tmp.xzjwur9yh7@1.0.0 postinstall
> prisma generate
 
Prisma schema loaded from prisma/schema.prisma
 
✔ Generated Prisma Client (v6.19.3) to ./node_modules/@prisma/client in 32ms
 
Start by importing your Prisma Client (See: https://pris.ly/d/importing-client)
 
Tip: Need your database queries to be 1000x faster? Accelerate offers you that and more: https://pris.ly/tip-2-accelerate
 
up to date in 661ms
$ node index.js
user: object / post: object
$ echo $?
0

— 2026-09-19 時点の出力

検証環境

検証日
実行環境
node:20Debian GNU/Linux 12 (bookworm)
バージョン
  • Node.js 20.20.2
  • npm 10.8.2
  • Python 3.11.2
  • Git 2.39.5

この記事の「実行例」は、上記の環境で実際にコマンドを実行して得られた出力をそのまま掲載しています。 再現手順はリポジトリの検証スクリプトとして管理し、定期的に再実行して出力を更新しています。

よくある原因

  1. schema.prisma を変更した後に prisma generate を実行していない。
  2. デプロイや CI で依存をインストールしただけで generate が走らず、生成物が存在しない。
  3. monorepo やカスタム output 設定で、生成物の出力先と import 元がずれている。
  4. Docker ビルド時に generate せず本番起動している。

なお Prisma ORM v7 以降は generator の output 指定が必須になり、import 元が生成先パスへ変わる点にも注意する。

解決策

1. prisma generate を実行する

npx prisma generate

スキーマを変更したら毎回必要になる。

2. postinstall / build に組み込む(デプロイ対策)

{
  "scripts": {
    "postinstall": "prisma generate",
    "build": "prisma generate && next build"
  }
}

Vercel や AWS Lambda などは依存キャッシュを復元するだけで generate が走らないことがあるため、ビルド前に明示する。

3. Docker では COPY 後に generate する

COPY prisma ./prisma
RUN npx prisma generate

この記事は役立ちましたか?