Drizzle ORM semakin populer sebagai alternatif Prisma. Artikel ini membahas kenapa Drizzle layak dicoba.
Kenapa Drizzle?
- Type-safe tanpa code generation — Prisma butuh prisma generate, Drizzle tidak
- SQL-like syntax — Kalau kamu sudah tahu SQL, Drizzle terasa natural
- Lightweight — Bundle size jauh lebih kecil
- No runtime dependency — Tidak ada Prisma Client engine
- Edge-compatible — Bisa jalan di Cloudflare Workers, Vercel Edge
Contoh Penggunaan
Define schema:
export const users = pgTable("users", {
id: text("id").primaryKey(),
name: text("name").notNull(),
email: text("email").unique(),
createdAt: timestamp("created_at").defaultNow(),
});
Query:
// Select
const allUsers = await db.select().from(users);
// Where
const user = await db.select().from(users).where(eq(users.id, "123"));
// Join
const posts = await db
.select()
.from(articles)
.innerJoin(users, eq(articles.authorId, users.id));
// Insert
await db.insert(users).values({ id: "123", name: "Sony" });
Drizzle Kit (Migrations)
# Generate migration
npx drizzle-kit generate
# Apply migration
npx drizzle-kit migrate
# Drizzle Studio (GUI)
npx drizzle-kit studio