Prisma เพิ่งออก เวอร์ชัน 6.16.x แล้วครับ ถือว่าเป็นการออกฟีเจอร์ที่สำคัญหลายอย่าง และน่าสนใจมากๆ ใครใช้อยู่แนะนำให้อัปเดตแนะนำครับ
.
1. Rust-free ORM (พร้อมสำหรับ production แล้ว)
Prisma ORM ในส่วนของ Rust-based query engine ย้ายไปใช้ TypeScript ทั้งหมดแล้วครับ และพร้อมสำหรับ production แล้ว ทำให้ ORM ในเวอร์ชันนี้น่าใช้มากๆ คือ
– ลดขนาด bundle ลง ~90%
– Query เร็วขึ้น และใช้ CPU น้อยลง
– Deploy ง่ายขึ้น (ไม่ต้องจัดการ binary แล้ว)
– ง่ายต่อการ contribute แบบ open source
.
การใช้งาน:
1) ตั้งค่าใน generator client ดังนี้
generator client {
provider = “prisma-client” // (or “prisma-client-js”)
output = “../src/generated/prisma”
engineType = “client”
}
2) ติดตั้ง driver adapter ตาม DB เช่น ถ้าใช้ Postgres
npm install @prisma/adapter-pg
3) ตัวอย่างการใช้งาน
import { PrismaClient } from ‘./generated/prisma’
import { PrismaPg } from ‘@prisma/adapter-pg’
const adapter = new PrismaPg({ connectionString: env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })
// … send queries using `prisma` like before
ป.ล. ใน V7 จะมาเป็น default เลยครับ ไม่ต้องตั้งค่า
.
2. Prisma Client Generator แบบใหม่
– ESM-first อย่างสมบูรณ์ ใช้ได้กับ Node.js, Deno, Bun, Cloudflare ฯลฯ
– โค้ดที่ generate ไม่ไปซ่อนใน node_modules แล้ว! เราสามารถตั้งค่าได้เอง
– Config ได้ยืดหยุ่น เช่น runtime, moduleFormat, generatedFileExtension
ตัวอย่าง
generator client {
// Required
provider = “prisma-client”
output = “../src/generated/prisma”
// Optional
engineType = “client”
runtime = “nodejs”
moduleFormat = “esm”
generatedFileExtension = “ts”
importFileExtension = “ts”
}
.
3. Type Checking Performance ดีขึ้น
Prisma ทำงานร่วมกับ David Blass (TS expert) เพื่อ optimize type checking ครับ ทำให้ Type check ในเวอร์ชันนี้ เร็วกว่า Drizzle เยอะเลยรวมถึง DX ดีขึ้น, autocomplete ไหลลื่น, jump-to-definition ไม่หน่วงด้วย
ใครสนใจก็ลองไปอ่านเพิ่มเติมได้นะครับ
https://github.com/prisma/prisma/releases/tag/6.16.0