Using the Prisma Client
Use `db` from `@kit/database` for type-safe database operations.
Import Prisma as db from @kit/database:
import { db } from '@kit/database';This guide is part of the Database Configuration documentation.
Basic Operations
const users = await db.user.findMany();const memberships = await db.member.findMany({ where: { organizationId: currentOrgId }, include: { user: true },});await db.user.update({ where: { id: userId }, data: { name: 'Alice Johnson' },});Tenant-Scoped Queries
Always filter tenant-owned data by fields such as organizationId or userId.
const members = await db.member.findMany({ where: { organizationId: currentOrgId }, orderBy: { createdAt: 'desc' }, take: 20,});Avoid unscoped tenant queries:
const allMembers = await db.member.findMany(); // avoid for tenant-owned dataTransactions
const result = await db.$transaction(async (tx) => { const org = await tx.organization.create({ data: { id: orgId, name: 'Acme', slug: 'acme', createdAt: new Date(), updatedAt: new Date(), }, }); const member = await tx.member.create({ data: { id: memberId, organizationId: org.id, userId: currentUserId, role: 'owner', createdAt: new Date(), }, }); return { org, member };});Common Pitfalls
- Forgetting ownership filters on tenant data
- Querying large tables without
take - Assuming a model exists because it appears in sample code
Next: Rate Limit Service →