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

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark