TurboJet
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) {
	// …
}

Terkait

Di halaman ini