Database
Use database client
Query and mutate data with db from @repo/database.
The database client is a cached PrismaClient exported as db from @repo/database (packages/database/src/index.ts). It is generated from prisma/schema.prisma.
Use it only in server-side code. Prefer calling db from services under packages/api/src/modules/*/service.ts rather than from React components.
For full Prisma CRUD docs, see the official Prisma Client guide.
Querying records
import { db } from "@repo/database";
const users = await db.user.findMany({
orderBy: { createdAt: "desc" },
});Creating records
import { db } from "@repo/database";
import { randomUUID } from "node:crypto";
const user = await db.user.create({
data: {
id: randomUUID(),
email: "[email protected]",
name: "Test User",
emailVerified: true,
},
});Better Auth normally creates users through sign-in flows. Direct create is useful in seeds and admin tools.
Updating records
import { db } from "@repo/database";
const updatedUser = await db.user.update({
where: { id: userId },
data: {
name: "Updated User",
},
});Deleting records
import { db } from "@repo/database";
const deletedUser = await db.user.delete({
where: { id: userId },
});Enums and types
import { db, $Enums, Prisma } from "@repo/database";
// or: import { $Enums } from "@repo/database/enums";
if (user.role === $Enums.Role.ADMIN) {
// …
}