Drizzle ORM คือ Type-safe ORM สำหรับ TypeScript ที่ให้คุณเขียน schema เป็น TypeScript โดยตรง บทความนี้ครอบคลุมตั้งแต่การตั้งค่าจนถึงการเขียน query ขั้นสูง

Drizzle ORM เป็นเครื่องมือที่ช่วยให้คุณทำงานกับ database ได้อย่าง type-safe โดยไม่ต้องเขียน SQL เอง แต่ยังคง control ได้เต็มที่
import { pgTable, uuid, text, timestamp } from 'drizzle-orm/pg-core'
export const users = pgTable('users', {
id: uuid('id').primaryKey().defaultRandom(),
name: text('name').notNull(),
email: text('email').notNull().unique(),
createdAt: timestamp('created_at').defaultNow().notNull(),
})
// Select
const allUsers = await db.select().from(users)
// Insert
const newUser = await db.insert(users).values({
name: 'สมชาย',
email: 'somchai@example.com',
}).returning()
// Update
await db.update(users)
.set({ name: 'สมหญิง' })
.where(eq(users.id, userId))
Drizzle มี CLI สำหรับสร้างและรัน migration ได้ง่ายมาก
bunx drizzle-kit generate
bunx drizzle-kit migrate