prisma-client-api-client-methods

โดย prisma

วิธีการของไคลเอนต์ อ้างอิงเมื่อใช้ฟีเจอร์ Prisma นี้

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-client-api-client-methods

Client Methods

Prisma Client instance methods.

$connect()

Explicitly connect to the database:

const prisma = new PrismaClient({ adapter })

// Explicit connection
await prisma.$connect()

When to use

Usually not needed - Prisma connects automatically on first query. Use for:

  • Fail fast on startup
  • Health checks
  • Pre-warming connections
async function main() {
  try {
    await prisma.$connect()
    console.log('Database connected')
  } catch (e) {
    console.error('Failed to connect:', e)
    process.exit(1)
  }
}

$disconnect()

Close database connection:

await prisma.$disconnect()

Graceful shutdown

process.on('beforeExit', async () => {
  await prisma.$disconnect()
})

// Or with SIGTERM
process.on('SIGTERM', async () => {
  await prisma.$disconnect()
  process.exit(0)
})

In tests

afterAll(async () => {
  await prisma.$disconnect()
})

$on()

Subscribe to events:

Query events

const prisma = new PrismaClient({
  adapter,
  log: [{ level: 'query', emit: 'event' }]
})

prisma.$on('query', (e) => {
  console.log('Query:', e.query)
  console.log('Params:', e.params)
  console.log('Duration:', e.duration, 'ms')
})

Log events

const prisma = new PrismaClient({
  adapter,
  log: [
    { level: 'info', emit: 'event' },
    { level: 'warn', emit: 'event' },
    { level: 'error', emit: 'event' }
  ]
})

prisma.$on('info', (e) => console.log(e.message))
prisma.$on('warn', (e) => console.warn(e.message))
prisma.$on('error', (e) => console.error(e.message))

$extends()

Add extensions for custom behavior:

Add custom methods

const prisma = new PrismaClient({ adapter }).$extends({
  client: {
    $log: (message: string) => console.log(message)
  }
})

prisma.$log('Hello!')

Add model methods

const prisma = new PrismaClient({ adapter }).$extends({
  model: {
    user: {
      async findByEmail(email: string) {
        return prisma.user.findUnique({ where: { email } })
      }
    }
  }
})

const user = await prisma.user.findByEmail('alice@prisma.io')

Query extensions

const prisma = new PrismaClient({ adapter }).$extends({
  query: {
    user: {
      async findMany({ args, query }) {
        // Add default filter
        args.where = { ...args.where, deletedAt: null }
        return query(args)
      }
    }
  }
})

Result extensions

const prisma = new PrismaClient({ adapter }).$extends({
  result: {
    user: {
      fullName: {
        needs: { firstName: true, lastName: true },
        compute(user) {
          return `${user.firstName} ${user.lastName}`
        }
      }
    }
  }
})

const user = await prisma.user.findFirst()
console.log(user.fullName) // Computed field

Chain extensions

const prisma = new PrismaClient({ adapter })
  .$extends(loggingExtension)
  .$extends(softDeleteExtension)
  .$extends(computedFieldsExtension)

$transaction()

See transactions.md for details.

$queryRaw() / $executeRaw()

See raw-queries.md for details.

Type utilities

Prisma namespace

import { Prisma } from '../generated/client'

// Input types
type UserCreateInput = Prisma.UserCreateInput
type UserWhereInput = Prisma.UserWhereInput

// Output types
type User = Prisma.UserGetPayload<{}>
type UserWithPosts = Prisma.UserGetPayload<{
  include: { posts: true }
}>

Prisma.validator

Type-safe query fragments:

import { Prisma } from '../generated/client'

const userSelect = Prisma.validator<Prisma.UserSelect>()({
  id: true,
  email: true,
  name: true
})

const user = await prisma.user.findUnique({
  where: { id: 1 },
  select: userSelect
})

Skills เพิ่มเติมจาก prisma

prisma-cli-migrate-reset
prisma
prisma migrate reset
official
prisma-cli-validate
prisma
ตรวจสอบความถูกต้องของ Prisma อ้างอิงเมื่อใช้ฟีเจอร์ Prisma นี้
official
prisma-next-extension-upgrade
prisma
Upgrade Prisma Next in your extension. Bumps every `@prisma-next/*` dependency to the requested target (or npm `latest`), runs the per-transition upgrade…
official
adr-review
prisma
ตรวจสอบ ADR หนึ่งรายการขึ้นไปด้วยมุมมองใหม่ (ในฐานะสมาชิกทีมที่ไม่มีบริบทมาก่อน) ระบุปัญหาเชิงเนื้อหาและโครงสร้าง จากนั้นเขียนใหม่ ใช้เมื่อ...
official
prisma-next-upgrade
prisma
Upgrade Prisma Next in your app. Bumps every `@prisma-next/*` dependency from the version pinned in the lockfile to the requested target (or npm `latest`),…
official
prisma-cli
prisma
คู่มืออ้างอิงที่สมบูรณ์สำหรับคำสั่ง ตัวเลือก และขั้นตอนการทำงานของ Prisma CLI ครอบคลุมการตั้งค่า การย้ายฐานข้อมูล และการดำเนินการกับฐานข้อมูล ประกอบด้วยคำสั่งมากกว่า 20 คำสั่งที่จัดลำดับตามความสำคัญ: การตั้งค่า (init), การสร้าง (generate), การพัฒนา (dev), การดำเนินการกับฐานข้อมูล (db pull/push/seed/execute) และการย้ายฐานข้อมูล (migrate dev/deploy/reset/status/diff/resolve) รวมถึงการเปลี่ยนแปลงใน Prisma 7.x: ไฟล์กำหนดค่า prisma.config.ts ใหม่, แฟล็กที่ถูกยกเลิก (--skip-generate, --skip-seed, --schema, --url) และรายละเอียด...
official
prisma-client-api
prisma
เอกสารอ้างอิง API ของ Prisma Client อย่างสมบูรณ์สำหรับการค้นหาโมเดล การดำเนินการ CRUD การกรอง ความสัมพันธ์ และธุรกรรม ครอบคลุมวิธีการค้นหาโมเดล 17 วิธี รวมถึง findUnique, findMany, create, update, delete, upsert และการดำเนินการแบบกลุ่มพร้อมตัวแปรผลลัพธ์ มีตัวเลือกการค้นหาสำหรับปรับแต่งผลลัพธ์: select, include, omit, orderBy, take, skip, cursor และ distinct รวมถึงตัวดำเนินการกรองแบบสเกลาร์และตรรกะ (equals, in, contains, startsWith, lt, gt) พร้อมตัวกรองความสัมพันธ์ (some,...)
official
prisma-compute
prisma
Prisma Compute deployment and hosting guide. Use whenever the user mentions Prisma Compute, `prisma.compute.ts`, `defineComputeConfig`, deploying or hosting a Prisma app, `@prisma/cli app deploy`, `compute:deploy`, `create-prisma --deploy`, `PRISMA_SERVICE_TOKEN`, `auth workspace`, Compute apps/deployments/build logs/domains, `@prisma/cli agent install`, localhost vs `0.0.0.0`, deploy port binding, or framework deploy readiness for Hono, Elysia, Next.js, TanStack Start, Astro, Nuxt, Svelte,...
developmentdevopsofficial