prisma-upgrade-v7-removed-features

โดย prisma

ฟีเจอร์ที่ถูกลบออก อ้างอิงเมื่อใช้ฟีเจอร์ Prisma นี้

npx skills add https://github.com/prisma/cursor-plugin --skill prisma-upgrade-v7-removed-features

Removed Features

Several features have been removed in Prisma v7. Here's how to migrate.

Client Middleware

Removed

// ❌ No longer works in v7
prisma.$use(async (params, next) => {
  const before = Date.now()
  const result = await next(params)
  const after = Date.now()
  console.log(`Query took ${after - before}ms`)
  return result
})

Use Client Extensions Instead

// ✅ v7 approach
const prisma = new PrismaClient({ adapter }).$extends({
  query: {
    $allModels: {
      async $allOperations({ operation, model, args, query }) {
        const before = Date.now()
        const result = await query(args)
        const after = Date.now()
        console.log(`${model}.${operation} took ${after - before}ms`)
        return result
      },
    },
  },
})

Common Middleware Patterns

Soft delete

const prisma = new PrismaClient({ adapter }).$extends({
  query: {
    user: {
      async delete({ args, query }) {
        // Convert delete to soft delete
        return prisma.user.update({
          where: args.where,
          data: { deletedAt: new Date() },
        })
      },
      async findMany({ args, query }) {
        // Filter out soft-deleted records
        args.where = { ...args.where, deletedAt: null }
        return query(args)
      },
    },
  },
})

Logging

const prisma = new PrismaClient({ adapter }).$extends({
  query: {
    $allModels: {
      async $allOperations({ operation, model, args, query }) {
        console.log(`${model}.${operation}`, JSON.stringify(args))
        return query(args)
      },
    },
  },
})

Metrics

Removed

The Metrics preview feature has been removed.

// ❌ No longer works
const metrics = await prisma.$metrics.json()

Alternatives

Custom counter with extensions

let totalQueries = 0

const prisma = new PrismaClient({ adapter }).$extends({
  client: {
    async $totalQueries() {
      return totalQueries
    },
  },
  query: {
    $allModels: {
      async $allOperations({ query, args }) {
        totalQueries += 1
        return query(args)
      },
    },
  },
})

// Usage
const count = await prisma.$totalQueries()

Use driver-level metrics

Access metrics from the underlying driver adapter.

CLI Flags Removed

--skip-generate

Removed from migrate dev and db push.

# v6
prisma migrate dev --skip-generate

# v7 - generate is not run automatically
prisma migrate dev
prisma generate  # Run explicitly if needed

--skip-seed

Removed from migrate dev and migrate reset.

# v6
prisma migrate dev --skip-seed

# v7 - seed is not run automatically
prisma migrate dev
prisma db seed  # Run explicitly if needed

--schema and --url from db execute

# v6
prisma db execute --file ./script.sql --url "$DATABASE_URL"

# v7 - configure in prisma.config.ts
prisma db execute --file ./script.sql

migrate diff Options

RemovedReplacement
--from-url--from-config-datasource
--to-url--to-config-datasource
--from-schema-datasource--from-config-datasource
--to-schema-datasource--to-config-datasource
--shadow-database-urlConfigure in prisma.config.ts

Example

# v6
prisma migrate diff --from-url "$DATABASE_URL" --to-schema schema.prisma

# v7
prisma migrate diff --from-config-datasource --to-schema schema.prisma

Automatic Behaviors Removed

Auto-generate after migrate

# v7 workflow
prisma migrate dev --name add_field
prisma generate  # Must run explicitly

Auto-seed after migrate

# v7 workflow
prisma migrate reset --force
prisma db seed  # Must run explicitly

rejectOnNotFound

Removed in v5.0.0 (already deprecated).

// ❌ Removed
const prisma = new PrismaClient({
  rejectOnNotFound: true,
})

// ✅ Use OrThrow methods
const user = await prisma.user.findUniqueOrThrow({
  where: { id: 1 },
})

const user = await prisma.user.findFirstOrThrow({
  where: { email: 'test@example.com' },
})

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