Database
Memakai client database
Query dan mutasi data dengan db dari @repo/database.
Client database adalah PrismaClient yang di-cache dan diekspor sebagai db dari @repo/database (packages/database/src/index.ts). Di-generate dari prisma/schema.prisma.
Pakai hanya di kode server-side. Lebih baik memanggil db dari service di packages/api/src/modules/*/service.ts daripada dari React component.
Untuk docs CRUD Prisma lengkap, lihat panduan Prisma Client resmi.
Query record
import { db } from "@repo/database";
const users = await db.user.findMany({
orderBy: { createdAt: "desc" },
});Membuat record
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 biasanya membuat user lewat alur masuk. create langsung berguna di seed dan tool admin.
Memperbarui record
import { db } from "@repo/database";
const updatedUser = await db.user.update({
where: { id: userId },
data: {
name: "Updated User",
},
});Menghapus record
import { db } from "@repo/database";
const deletedUser = await db.user.delete({
where: { id: userId },
});Enum dan tipe
import { db, $Enums, Prisma } from "@repo/database";
// atau: import { $Enums } from "@repo/database/enums";
if (user.role === $Enums.Role.ADMIN) {
// …
}