PrismaでPrismaClientがanyになる場合にとりあえず見る場所と対策・予防策
npx prisma migrateしても型定義がanyになる場合があります。 原因と対応 自分のケースでは、prisma/schema.prismaにgeneratorブロックを入れ忘れていたことが原因でした。 この3 […]
広告ここから
広告ここまで
目次
npx prisma migrate
しても型定義がany
になる場合があります。
/**
* ## Prisma Client ʲˢ
*
* Type-safe database client for TypeScript & Node.js
* @example
* ```
* const prisma = new Prisma()
* // Fetch zero or more Users
* const users = await prisma.user.findMany()
* ```
*
*
* Read more in our [docs](https://www.prisma.io/docs/concepts/components/prisma-client).
*/
export declare type PrismaClient = any
原因と対応
自分のケースでは、prisma/schema.prisma
にgenerator
ブロックを入れ忘れていたことが原因でした。
generator client {
provider = "prisma-client-js"
}
この3行を追加して、npx prisma migrate
を実行しましょう。
% npx prisma migrate dev
型定義がany
になってなければOKです。
export class PrismaClient<
T extends Prisma.PrismaClientOptions = Prisma.PrismaClientOptions,
U = 'log' extends keyof T ? T['log'] extends Array<Prisma.LogLevel | Prisma.LogDefinition> ? Prisma.GetEvents<T['log']> : never : never,
GlobalReject extends Prisma.RejectOnNotFound | Prisma.RejectPerOperation | false | undefined = 'rejectOnNotFound' extends keyof T
? T['rejectOnNotFound']
: false
> {
予防策
後からPrismaを追加する場合でも、npx prisma init
を実行しましょう。
npx prisma i
nit --datasource-provider sqlite
✔ Your Prisma schema was created at prisma/schema.prisma
You can now open it in your favorite editor.
warn You already have a .gitignore file. Don't forget to add `.env` in it to not commit any private information.
Next steps:
1. Set the DATABASE_URL in the .env file to point to your existing database. If your database has no tables yet, read https://pris.ly/d/getting-started
2. Run prisma db pull to turn your database schema into a Prisma schema.
3. Run prisma generate to generate the Prisma Client. You can then start querying your database.
More information in our documentation:
https://pris.ly/d/getting-started
横着してprisma/schema.prisma
を手動生成すると、入れ忘れによる事故がおきます。おきました。