Features

Prisma runner in Dora

Query the way you already do in your app — Prisma Client syntax — and watch Dora translate it to SQL you can read before it runs.

RunPrismaTranslated to SQL
1prisma.customer.findMany({
2 where: { orders: { some: { status: 'paid' } } },
3 select: {
4 name: true,
5 _count: { select: { orders: true } },
6 },
7 orderBy: { orders: { _count: 'desc' } },
8 take: 5,
9})
SQL preview
SELECT "customers"."name",
count("orders"."id") AS "orders_count"
FROM "customers"
INNER JOIN "orders"
ON "orders"."customer_id" = "customers"."id"
WHERE "orders"."status" = 'paid'
GROUP BY "customers"."name"
ORDER BY count("orders"."id") DESC
LIMIT 5
Prisma runner translating Prisma Client queries to SQL before they run

Dora adds a Prisma tab next to the SQL console and the Drizzle runner. Write queries like prisma.user.findMany({ where: { active: true } }) and Dora translates them to SQL on the fly, executes them through the same native engine as everything else, and shows the rows in the standard results panel.

It is a translation layer, not a Prisma runtime: there is no generated client, no schema.prisma file, and no Node process to manage. Dora derives the model names from your live schema, so the runner reflects the database you are actually connected to.

What you get

  • Write Prisma Client queries against any connected database
  • Live SQL preview before you run
  • No schema.prisma file, codegen, or Node runtime
  • Model names inferred from your live schema