Prisma ORM กับ Supabase ใช้ร่วมกันอย่างไร
Supabase ให้ PostgreSQL ฟรีพร้อม dashboard ที่ใช้งานง่าย แต่การใช้ Prisma ควบคู่ทำให้ได้ type-safety เต็มรูปแบบและจัดการ migration ได้ง่ายกว่ามาก
สิ่งที่คนมักสับสนคือความแตกต่างระหว่าง DATABASE_URL และ DIRECT_URL ในไฟล์ .env โดย DATABASE_URL ใช้ connection pooler ของ Supabase (port 6543) เหมาะสำหรับ runtime queries ที่มีการเรียกใช้บ่อย ส่วน DIRECT_URL เชื่อมต่อตรงกับ PostgreSQL (port 5432) ใช้สำหรับ Prisma migrations เท่านั้น
การตั้งค่า connection pool ที่เหมาะสมเป็นเรื่องสำคัญมาก โดยปกติ Supabase free tier จะให้ connection ไม่เกิน 60 connections ถ้าไม่ใช้ pooler อาจทำให้ connection หมดได้ง่ายในสภาพแวดล้อม serverless
สำหรับ Prisma Studio ซึ่งเป็น GUI สำหรับดูและแก้ไขข้อมูลใน database สามารถรันได้ด้วยคำสั่ง npx prisma studio แล้วเปิด browser ที่ localhost:5555 ได้เลย มีประโยชน์มากในช่วง development
การ seed ข้อมูลตัวอย่างด้วย prisma/seed.ts ทำให้ทีมทุกคนมีข้อมูลเริ่มต้นเหมือนกันตั้งแต่ต้น และการใช้ upsert แทน create ทำให้ run seed ซ้ำได้โดยไม่เกิด error