JavaScriptPrisma / TypeORM

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.prismageneratorブロックを入れ忘れていたことが原因でした。

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を手動生成すると、入れ忘れによる事故がおきます。おきました。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts