Jak opravit chybu „Prisma Client Has Not Been Generated Yet“

Pokud vaše aplikace spadne s chybou Prisma Client has not been generated yet, nejrychlejší užitečnou reakcí není všechno smazat a naslepo přeinstalovat. Nejprve zjistěte, který generátor Prisma Client váš projekt používá, vygenerujte klienta ze správného schématu a ujistěte se, že vaše aplikace importuje z umístění, které bylo skutečně vygenerováno.

Existuje důležitý zdroj zmatení související s verzemi. Podle kontroly v září 2026 používá dokumentace Prisma 7 generátor prisma-client s povinným výstupním adresářem output a kód aplikace importuje Prisma Client z této vygenerované cesty. Starší a stále běžné projekty používají prisma-client-js, kde je @prisma/client běžným importem a vygenerované soubory specifické pro projekt tradičně žily v node_modules/.prisma/client. Smíchání těchto dvou sad pokynů může vést k tomu, že máte vygenerovaného klienta na jednom místě a kód aplikace importuje jiný. Oficiální průvodce generováním Prisma Client dokumentuje aktuální chování Prisma 7.

Rychlá diagnostika: co chyba obvykle znamená

Co pozorujeteNejužitečnější kontrolaDalší krok
Chyba se objeví okamžitě při importu nebo vytváření PrismaClientByl klient vygenerován pro tento checkout a schéma?Spusťte npx prisma generate ze správného balíčku.
prisma generate uspěje, ale aplikace stále vyhazuje chybuOdpovídá váš import výstupu generátoru?Prohlédněte blok generátoru a vygenerovaný adresář, poté opravte import.
Funguje lokálně, ale selhává v CI nebo produkciSpouští sestavení generování poté, co jsou dostupné závislosti a soubory schématu?Přidejte explicitní krok generování do instalace nebo sestavení.
Aplikace v monorepu nedokáže vyřešit klientaKterý workspace vlastní schema.prisma a vygenerovaný kód?Generujte v tomto workspace a konzistentně jej exportujte/importujte.
Samotné generování selháváJe schéma platné a čte Prisma zamýšlené schéma?Spusťte npx prisma validate a nejprve opravte chyby validace nebo cest.

1. Přečtěte si selhání, než změníte závislosti

Potvrzená část je jednoduchá: Prisma Client je vygenerovaný kód přizpůsobený vašemu schématu. Pokud runtime importuje vstupní bod klienta, jehož vygenerovaná implementace chybí, je zastaralá nebo není tam, kde ji import očekává, může spuštění selhat ještě před prvním databázovým dotazem.

Co však tato zpráva sama o sobě neprokazuje, je, že vaše databáze je nedostupná, přihlašovací údaje jsou špatné nebo migrace selhaly. Tyto stavy mohou způsobit jiné chyby Prisma, ale tato konkrétní zpráva vás nejprve nasměruje ke generování a rozlišení modulů.

Akce: poznamenejte si přesný balíček, soubor a cestu importu v trasování zásobníku. Poté zkontrolujte blok generátoru ve schématu, než cokoli přeinstalujete.

Terminál zobrazuje zprávu „Prisma Client has not been generated yet“ při spouštění vývojové aplikace.
Příklad chyby při spuštění aplikace. Berte ji nejprve jako problém generování klienta nebo cesty importu, nikoli jako důkaz výpadku databáze.

2. Určete svůj generátor a očekávanou cestu importu

Otevřete prisma/schema.prisma nebo cestu ke schématu nakonfigurovanou pro váš projekt. Generátor určuje, kde je Prisma Client vytvořen a jak jej máte importovat.

Aktuální vzor prisma-client v Prisma 7

generator client {
  provider = "prisma-client"
  output   = "../generated/prisma"
}

S tímto vzorem importujte z výstupu, který jste nakonfigurovali, například:

import { PrismaClient } from "../generated/prisma/client";

Aktuální dokumentace Prisma uvádí, že output je povinný pro generátor prisma-client v Prisma 7 a že importy pocházejí z tohoto vygenerovaného umístění.

Starší vzor prisma-client-js

generator client {
  provider = "prisma-client-js"
}

V tomto starším uspořádání kód aplikace běžně používá:

import { PrismaClient } from "@prisma/client";

Akce: neměňte import jen proto, že tutoriál používá jiný generátor. Sladťte import s vlastním schématem a verzí.

Editor kódu zobrazuje schéma Prisma s generátorem klienta, zdrojem dat a modelem User.
Příklad schématu prisma-client-js ve starším stylu. V projektech Prisma 7 používajících novější generátor prisma-client definujte explicitní výstupní cestu a importujte z tohoto vygenerovaného umístění.

3. Ověřte schéma a poté vygenerujte klienta

Před generováním ověřte schéma. Prisma poskytuje prisma validate speciálně pro kontrolu syntaxe a konfigurace schématu. Oficiální reference prisma validate také podporuje --schema pro nestandardní umístění schématu.

npx prisma validate
npx prisma generate

Pokud je vaše schéma jinde:

npx prisma validate --schema=./packages/database/prisma/schema.prisma
npx prisma generate --schema=./packages/database/prisma/schema.prisma

Oficiální reference příkazu generate vysvětluje, že Prisma prozkoumá schéma a zapíše vygenerované artefakty do výstupu nakonfigurovaného generátorem.

Akce: přečtěte si konečný výstup z prisma generate. Nepředpokládejte, kam byly soubory zapsány; použijte cestu, kterou Prisma hlásí.

Terminál zobrazuje dokončení npx prisma generate a hlášení vygenerovaného Prisma Client.
Spusťte prisma generate z balíčku, který vlastní schéma, a poté pečlivě přečtěte výstupní řádek, abyste zjistili, kam byl klient zapsán.

4. Ověřte, že výstup existuje tam, kde jej váš kód očekává

Úspěšný příkaz je nezbytný, ale runtime musí vidět stejné soubory. To je obzvláště důležité, když nástroje sestavení kopírují jen část repozitáře, když fáze Dockeru vynechá vygenerovaný výstup nebo když monorepo sestaví jeden balíček, aniž by nejprve sestavilo databázový balíček.

Pro prisma-client prohlédněte vlastní výstupní adresář output ze schématu. Pro prisma-client-js prohlédněte uspořádání nainstalovaného/vygenerovaného balíčku Prisma používané vaší verzí. Nepovažujte složku zobrazenou ve starším příkladu za univerzální.

Akce: porovnejte tři věci vedle sebe: output generátoru, cestu hlášenou příkazem prisma generate a příkaz importu v souboru, který selhává. Měly by popisovat stejného vygenerovaného klienta.

Průzkumník souborů zobrazuje vygenerované soubory Prisma Client pod node_modules a schéma projektu.
V projektech se starším prisma-client-js obvykle žijí vygenerované soubory pod node_modules. Novější projekty prisma-client používají vlastní výstupní adresář nakonfigurovaný v schema.prisma.

5. Opravte import místo nekonečného regenerování

Pokud prisma generate pokaždé uspěje, ale stejná chyba za běhu přetrvává, opakované spouštění pravděpodobně nepomůže. Další otázkou je, zda vaše aplikace importuje vygenerovaný modul, který jste právě vytvořili.

Pro generátor prisma-client v Prisma 7 aktuální dokumentace ukazuje importy z vlastní vygenerované cesty. Pro projekt prisma-client-js je @prisma/client očekávaným importem balíčku. Tento rozdíl je jedním z nejčastějších důvodů, proč si aktuální a starší příklady zdánlivě odporují.

Akce: prohledejte svůj repozitář a najděte každý import PrismaClient. Při migraci nebo v monorepu může být jeden balíček aktualizován, zatímco jiný stále importuje starou cestu.

Editor TypeScriptu importuje PrismaClient a vytváří sdílenou instanci klienta Prisma.
Import musí odpovídat generátoru, který skutečně používáte: @prisma/client pro starší nastavení prisma-client-js, nebo vaší nakonfigurované vygenerované výstupní cestě pro generátor prisma-client v Prisma 7.

6. Zkontrolujte verze balíčků Prisma, když byl projekt upgradován

Nesoulad verzí je příčinou závislou na okolnostech, nikoli něčím, co tato chyba sama o sobě prokazuje. Průvodci upgradem Prisma však vývojářům nařizují aktualizovat jak balíček CLI prisma, tak @prisma/client při přechodu na hlavní verze. Oficiální průvodce upgradem na Prisma 7 ukazuje oba balíčky upgradované společně.

Zkontrolujte, co je skutečně nainstalováno:

npm ls prisma @prisma/client

U pnpm nebo Yarn použijte ekvivalentní příkaz pro výpis v workspace, který vlastní Prisma. Pokud projekt záměrně zůstává na Prisma 6 nebo jiné podporované verzi, neupgradujte jen kvůli odstranění této zprávy. Slaďte balíčky s verzí, kterou váš projekt očekává, a poté znovu vygenerujte.

Akce: pokud se verze po sloučení nebo aktualizaci závislostí staly nekonzistentními, obnovte zamýšlené odpovídající verze a znovu spusťte prisma generate.

7. Začleňte generování do instalace nebo sestavení

Když aplikace funguje na vývojářském počítači, ale selhává po nasazení, chybějící krok je často v pipeline sestavení, nikoli v kódu aplikace. Dokumentace Prisma pro řešení problémů s Next.js konkrétně doporučuje generovat Prisma Client při každém nasazení, když ukládání závislostí do mezipaměti může zabránit tomu, aby se generování při instalaci spustilo podle očekávání.

Jednoduchý skript v package.json je:

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

Obvykle potřebujete jeden spolehlivý bod generování, ne každý možný hook. Zvolte hook, který vaše platforma nasazení skutečně spouští. Podívejte se na oficiální stránku Prisma pro řešení problémů s nasazením Next.js pro případ související s mezipamětí.

Akce: prohlédněte protokoly CI a potvrďte, že prisma generate proběhl poté, co bylo dostupné správné schéma a závislosti, a před sestavením nebo spuštěním serveru.

Editor package.json zobrazuje vývojové a sestavovací skripty související s Prisma.
Přidání explicitního kroku generování do skriptů balíčku činí lokální sestavení a chování CI předvídatelnějšími. Udržujte přesný příkaz konzistentní se svým správcem balíčků a uspořádáním projektu.

8. Po generování restartujte proces

Vývojové servery, testovací běžce a pracovní procesy mohou udržovat moduly načtené v paměti. Vygenerování souborů na disk nezaručuje, že proces, který již selhal při importu, je automaticky znovu načte.

Akce: po úspěšném generování zastavte a restartujte vývojový server, pracovní proces nebo testovací proces. Pokud aplikace nyní postoupí k jiné chybě databáze nebo konfigurace, je to užitečný důkaz, že problém s generováním klienta je vyřešen.

Vývojový terminál zobrazuje úspěšné spuštění aplikace po vygenerování Prisma Client.
Po generování restartujte proces, aby runtime znovu načetl vygenerovaný modul místo toho, aby udržoval selhaný nebo zastaralý import v paměti.

Monorepa: generujte v balíčku, který vlastní schéma

Ve workspace není spuštění npx prisma generate z kořene repozitáře automaticky ekvivalentní generování uvnitř databázového balíčku. Vyhledávání schématu, konfigurační soubory, závislosti a relativní výstupní cesty se mohou v jednotlivých balíčcích lišit.

Oficiální průvodce Prisma pro pnpm workspaces ukazuje vyhrazený databázový balíček s vlastním schématem, vygenerovaným klientem, pomocnými skripty a exporty pro spotřebitelské aplikace.

Praktický vzor je:

packages/database/
  prisma/schema.prisma
  generated/client/
  client.ts
  package.json

apps/web/
  package.json

Generujte z packages/database, exportujte klienta z tohoto balíčku a nechte aplikace záviset na balíčku, místo aby sahly do soukromého vygenerovaného adresáře jiného workspace.

Akce: udělejte úlohu sestavení nebo generování databázového balíčku explicitní závislostí každé aplikace, která jej importuje.

Musíte smazat node_modules?

Ne jako první krok. Smazání node_modules může opravit poškozenou instalaci, ale také může skrýt skutečný problém tím, že přinutí mnoho nesouvisejících balíčků změnit se najednou. Pokud validace schématu uspěje a generování hlásí správný výstup, nejprve ověřte importy, verze balíčků a cesty sestavení.

Čistá přeinstalace se stává rozumnou, když jsou metadata balíčků nekonzistentní, vygenerovaný výstup je po změnách závislostí zjevně zastaralý nebo váš správce balíčků hlásí problémy s instalací.

Akce: před čištěním zachyťte npm ls prisma @prisma/client a výstup prisma generate. Získáte tak důkazy pro srovnání po přeinstalaci.

Co vám tato chyba neříká

  • Sama o sobě neprokazuje, že vaše databáze je nedostupná. Nejprve opravte generování/rozlišení importu a poté vyhodnoťte jakoukoli zbývající chybu připojení.
  • Neprokazuje, že chybí migrace. Generování Prisma Client a migrace schématu databáze jsou související pracovní postupy, ale nejsou to stejné operace.
  • Neznamená, že každý projekt by měl importovat z @prisma/client. To závisí na generátoru a verzi Prisma.
  • Neznamená, že je vždy nutné přeinstalovat závislosti. Správné prisma generate plus správná cesta importu často stačí.

Kontrolní seznam prevence

  • Spusťte prisma validate, když se změní schéma nebo konfigurace generátoru.
  • Spusťte prisma generate po změnách schématu a po stažení změn, které ovlivňují API vygenerovaného klienta.
  • Udržujte runtime import sladěný s nakonfigurovaným výstupem generátoru.
  • Udržujte verze prisma a @prisma/client sladěné, když vámi zvolená verze Prisma používá oba balíčky.
  • V CI a produkci spouštějte generování explicitně před sestavením/spuštěním, když by ukládání závislostí do mezipaměti mohlo tento krok přeskočit.
  • V monorepech generujte ve workspace, který vlastní schéma, a vystavte klienta prostřednictvím stabilní hranice balíčku.
  • Po vygenerování dříve chybějícího klienta restartujte dlouho běžící vývojové procesy.
Editor package.json zobrazuje skripty prisma generate a postinstall v pracovním postupu projektu.
U platforem nasazení, které ukládají závislosti do mezipaměti, spouštějte prisma generate explicitně během instalace nebo sestavení, místo abyste předpokládali, že dříve vygenerovaný klient je stále aktuální.

Shrnutí

Spolehlivá oprava je krátký řetězec důkazů: identifikujte svůj generátor Prisma, ověřte zamýšlené schéma, vygenerujte klienta, ověřte skutečnou výstupní cestu a sladťte svůj import s tímto výstupem. Pokud se problém vyskytuje pouze v CI nebo produkci, přesuňte stejný krok generování do pracovního postupu sestavení. Pokud se vyskytuje v monorepu, udělejte z generování odpovědnost balíčku, který vlastní schéma.

Tento přístup je spolehlivější než opakované mazání závislostí, protože vám říká, která vrstva byla chybná: výběr schématu, generování, verze balíčků, rozlišení importu nebo balení při nasazení.

Zanechat komentář

Jak opravit chybu „Prisma Client Has Not Been Generated Yet“

Jak opravit chybu „Prisma Client Has Not Been Generated Yet“

Opravte chybu nevygenerovaného Prisma Client kontrolou generátoru, schématu, výstupní cesty, importů, verzí, nastavení monorepa a kroků sestavení při nasazení.

Jak opravit chybu „ERR_MODULE_NOT_FOUND“ v importech Node.js ESM

Jak opravit chybu „ERR_MODULE_NOT_FOUND“ v importech Node.js ESM

Opravte chybu Node.js ERR_MODULE_NOT_FOUND v ESM kontrolou cest importu, přípon souborů, instalace balíčků, exportů, režimu ESM a čistých instalací.

Jak opravit problém se SSL certifikátem: Nelze získat lokální certifikát vydavatele v Gitu

Jak opravit problém se SSL certifikátem: Nelze získat lokální certifikát vydavatele v Gitu

Opravte chybu Gitu 'nelze získat lokální certifikát vydavatele' identifikací důvěryhodného backendu, instalací správného řetězce CA a ponecháním ověřování SSL zapnutého.

Jak opravit chybu časového limitu sítě MongoDB v připojení Mongoose

Jak opravit chybu časového limitu sítě MongoDB v připojení Mongoose

Opravte chyby časového limitu sítě MongoDB v Mongoose identifikací typu časového limitu, testováním dostupnosti Atlasu nebo TCP, opravou URI a laděním časových limitů pouze v odůvodněných případech.

Jak opravit chybu Execution Policy Restricted ve Windows PowerShell

Jak opravit chybu Execution Policy Restricted ve Windows PowerShell

Opravte chybu Execution Policy Restricted v PowerShellu kontrolou rozsahu a Skupinové politiky, poté zvolte RemoteSigned, Unblock-File nebo dočasnou možnost relace.

Jak opravit chybu npm ERR! code ERESOLVE: Konflikt peer dependencies

Jak opravit chybu npm ERR! code ERESOLVE: Konflikt peer dependencies

Opravte konflikty peer dependencies v npm identifikací nekompatibilního rozsahu balíčků, zarovnáním verzí, použitím příkazů npm explain a npm ls a používáním legacy-peer-deps nebo force pouze jako kontrolovaných záložních řešení.

Jak opravit chybu připojení Redis k 127.0.0.1:6379

Jak opravit chybu připojení Redis k 127.0.0.1:6379

Opravte chyby odmítnutí připojení Redis na 127.0.0.1:6379 kontrolou serveru, portu, síťového nastavení Dockeru, redis.conf, ověřování a TLS.

Jak opravit interní chybu 500 v Next.js Server Components

Jak opravit interní chybu 500 v Next.js Server Components

Opravte chyby 500 v Next.js Server Components sledováním serverových logů, kontrolou načítání dat a proměnných prostředí, zpracováním chyb a ověřením produkčního buildu.

Jak opravit Kubernetes CrashLoopBackOff v lokálním Minikube

Jak opravit Kubernetes CrashLoopBackOff v lokálním Minikube

Diagnostikujte a opravte Kubernetes CrashLoopBackOff v lokálním Minikube kontrolou stavu podu, předchozích logů, důvodů ukončení, sond, konfigurace, limitů paměti a zdraví klastru.

Jak opravit chybu „Engine stopped“ v Docker Desktop na Windows 11

Jak opravit chybu „Engine stopped“ v Docker Desktop na Windows 11

Opravte chybu „Engine stopped“ v Docker Desktop na Windows 11 kontrolou stavu Dockeru, aktualizací a restartem WSL 2, ověřením virtualizace a použitím diagnostiky před resetem.