🔍 Mengenal Drizzle ORM: Alternatif Prisma dan pg yang Ringan dan Type-Safe

Ariska HidayatAriska Hidayat
3 min read

Dalam dunia pengembangan aplikasi Node.js, developer biasanya dihadapkan pada pilihan tools untuk berinteraksi dengan database PostgreSQL. Tiga nama populer saat ini adalah:

Drizzle adalah pendatang baru, tapi mulai menarik perhatian karena ringan, cepat, dan type-safe tanpa banyak magic. Mari kita bahas dan bandingkan ketiganya.


🧱 1. Apa itu Drizzle?

Drizzle ORM adalah ORM modern untuk TypeScript yang memanfaatkan type inference dari definisi schema secara langsung di kode TypeScript-mu. Ia memberikan pengalaman seperti Prisma, tetapi lebih dekat ke SQL dan tidak bergantung pada runtime generator atau query engine tersendiri.


📊 Perbandingan Drizzle vs Prisma vs pg

Fitur🧪 Drizzle ORM🎯 Prisma ORM🧱 node-postgres (pg)
BahasaTypeScriptTypeScriptJavaScript/TypeScript
Type Safety✅ Sangat bagus✅ Sangat bagus❌ Manual
Pendekatan ORMSQL-like builderAbstraksi tinggiRaw SQL
Auto migration🟡 Terbatas (drizzle-kit)✅ Lengkap❌ Manual
Query Performance✅ Cepat & langsung ke DB🟡 Kadang lambat (pakai query engine)✅ Cepat
Bundle size (client)✅ Kecil❌ Besar (banyak dep)✅ Ringan
Query Runtime✅ SQL langsung❌ Query engine terpisah✅ SQL langsung
Belajar dari awal🟢 Mudah untuk dev SQL-savvy🟢 Mudah secara umum🔴 Sulit (butuh raw SQL)
Kompatibilitas serverless✅ Cocok🟡 Hati-hati (masalah cold start)✅ Aman

💻 Contoh Kode

1. Drizzle (PostgreSQL)

// schema.ts
import { pgTable, serial, text } from 'drizzle-orm/pg-core';

export const users = pgTable('users', {
  id: serial('id').primaryKey(),
  name: text('name').notNull(),
});

// query
const usersList = await db.select().from(users);

2. Prisma

// schema.prisma
model User {
  id    Int    @id @default(autoincrement())
  name  String
}

// query
const users = await prisma.user.findMany();

3. pg (node-postgres)

const client = new Client();
await client.connect();

const res = await client.query('SELECT * FROM users');
const users = res.rows;

🚀 Kapan Pakai Masing-Masing?

Use CaseRekomendasi
Butuh kontrol penuh, suka SQL✅ Drizzle atau pg
Pengin productivity dan auto-gen✅ Prisma
Ingin bundle kecil (misal di Edge)✅ Drizzle
Legacy project atau full raw SQL✅ pg
Butuh relasi kompleks & dokumentasi lengkap✅ Prisma

🔍 Keunggulan Drizzle

  • Zero-runtime: Tidak ada kode aneh saat build atau generate.

  • ✅ Sangat ringan dan cepat untuk deploy di Edge/serverless.

  • ✅ Tipe langsung dari schema, tanpa generate tambahan.

  • ✅ Migration cukup dari CLI drizzle-kit.


⚠️ Keterbatasan Drizzle

  • 🟡 Masih baru, ekosistem belum seluas Prisma.

  • 🟡 Belum mendukung banyak fitur advanced seperti Prisma relation resolver atau middleware bawaan.

  • 🟡 Tidak ada “visual Studio” atau dashboard UI.


💬 Kesimpulan

Drizzle cocok untuk:

  • Developer yang mengutamakan kecepatan, ringan, dan kontrol SQL.

  • Project modern dengan kebutuhan bundle kecil, serverless, atau Edge.

  • Pengganti Prisma untuk proyek yang mulai “terlalu berat”.

Prisma cocok untuk:

  • Developer yang suka productivity tinggi dengan fitur seperti prisma studio, relasi otomatis, dan banyak plugin.

  • Tim besar yang butuh dokumentasi dan kontrol data modeling visual.

pg cocok untuk:

  • Developer expert SQL, atau saat ingin performa maksimal tanpa ORM sama sekali.

🛠 Rekomendasi Praktek

KebutuhanTools Ideal
Fullstack dengan Next.jsDrizzle + Neon + Vercel
Aplikasi skala besarPrisma + PostgreSQL
Tool CLI / bot sederhanapg langsung

0
Subscribe to my newsletter

Read articles from Ariska Hidayat directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ariska Hidayat
Ariska Hidayat

I am an enthusiastic researcher and developer with a passion for using technology to innovate in business and education.