Kami menggunakan cookies untuk meningkatkan pengalaman Anda di website ini. Dengan melanjutkan, Anda menyetujui penggunaan cookies sesuai Kebijakan Privasi kami.
Prisma lama jadi raja ORM JavaScript. Tapi Drizzle ORM yang lebih baru makin populer karena lebih cepat, lebih ringan, dan lebih type-safe. Ini perbandingan jujur berdasarkan pengalaman pakai keduanya.
Muhamad Putra Aulia Hidayat
Kalau kamu mulai project JavaScript/TypeScript baru dan butuh ORM, dua pilihan teratas di 2026 adalah Prisma dan Drizzle. Keduanya bagus, tapi untuk kasus berbeda.
Prisma sudah ada sejak 2019 dan punya ekosistem yang sangat mature.
// schema.prisma
model User {
id String @id @default(cuid())
email String @unique
name String?
posts Post[]
createdAt DateTime @default(now())
}
model Post {
id String @id @default(cuid())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId String
}
// Query dengan Prisma
const usersWithPosts = await prisma.user.findMany({
where: { posts: { some: { published: true } } },
include: {
posts: {
where: { published: true },
orderBy: { createdAt: "desc" },
take: 5
}
}
})
Kelebihan Prisma:
Kekurangan Prisma:
Drizzle lebih baru (2022) tapi tumbuh sangat cepat karena performa dan filosofi yang berbeda.
// schema.ts - Schema dalam TypeScript murni
import { pgTable, uuid, text, boolean, timestamp } from "drizzle-orm/pg-core"
import { relations } from "drizzle-orm"
export const users = pgTable("users", {
id: uuid("id").primaryKey().defaultRandom(),
email: text("email").unique().notNull(),
name: text("name"),
createdAt: timestamp("created_at").defaultNow()
})
export const posts = pgTable("posts", {
id: uuid("id").primaryKey().defaultRandom(),
title: text("title").notNull(),
content: text("content"),
published: boolean("published").default(false),
authorId: uuid("author_id").references(() => users.id)
})
export const usersRelations = relations(users, ({ many }) => ({
posts: many(posts)
}))
// Query dengan Drizzle
const result = await db
.select({
user: users,
postCount: count(posts.id)
})
.from(users)
.leftJoin(posts, and(
eq(posts.authorId, users.id),
eq(posts.published, true)
))
.groupBy(users.id)
.orderBy(desc(users.createdAt))
.limit(10)
Kelebihan Drizzle:
Kekurangan Drizzle:
| Aspek | Prisma | Drizzle |
|---|---|---|
| DX / Kemudahan | Lebih mudah | Sedikit lebih kompleks |
| Performa | Baik | Lebih baik |
| Bundle size | ~17MB | ~60KB |
| Edge/Serverless | Butuh add-on | Native |
| Migrasi | Sangat mudah | Lebih manual |
| Type safety | Excellent | Excellent |
| Query fleksibilitas | Baik | Sangat baik |
Untuk Next.js + Vercel: Drizzle + Supabase atau Neon Untuk monolith + VPS: Prisma bisa lebih nyaman Untuk edge functions: Drizzle wajib
Di Digital Uptime, project baru kami pakai Drizzle untuk yang deploy ke Vercel, dan Prisma untuk project yang butuh tim non-developer manage data via Prisma Studio.
Tips teknologi & bisnis mingguan
Bergabung dengan 2,500+ subscriber yang mendapatkan insight teknologi, tutorial development, dan tips bisnis digital langsung ke inbox mereka setiap minggu.
Dapatkan tips & insight teknologi terbaru langsung ke inbox Anda.
© 2026 PT Digital Uptime Teknologi Informasi. Hak cipta dilindungi.