RIZKYEMHA
โ† Back to Blog๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia
PrismaPostgreSQLNode.jsBackend

Why I Chose Prisma Over Raw SQL for My Projects

April 10, 2024ยท6 min read
Why I Chose Prisma Over Raw SQL for My Projects

Introduction

When building a production-grade API, choosing the right data access layer matters. After working with raw SQL and multiple ORMs, I settled on Prisma โ€” and here's why.

The Problem with Raw SQL at Scale

Raw SQL gives you full control, but at scale it becomes a maintenance burden. Schema changes require manual migration scripts, type safety is nonexistent, and onboarding new developers takes significantly longer.

Why Prisma Stands Out

Prisma solves these problems elegantly with three core tools:

  • Prisma Schema โ€” a single source of truth for your data model
  • Prisma Migrate โ€” declarative, version-controlled migrations
  • Prisma Client โ€” a fully type-safe query builder generated from your schema

Real-World Example

const user = await prisma.user.findUnique({
  where: { id: userId },
  include: { posts: true },
})

No raw SQL. No type casting. No guessing column names. The client is auto-generated โ€” if your schema changes, your types update automatically.

When Raw SQL Still Wins

Prisma isn't perfect for everything. For highly complex analytical queries or performance-critical aggregations, raw SQL (via prisma.$queryRaw) is still the better choice.

Conclusion

For most fullstack projects, Prisma provides the right balance of developer experience, type safety, and maintainability. It's my default ORM โ€” and likely will be for a long time.

โ† All ArticlesShare on X โ†—