Database
Prisma
Database management with Prisma ORM
Prisma ORM
TurboKit uses Prisma as the database ORM with a shared package.
Package Location
The database package is at packages/database/:
packages/database/
├── prisma/
│ └── schema.prisma # Database schema
├── src/
│ └── index.ts # Prisma client export
└── package.jsonConfiguration
Database connection is configured via environment variable:
DATABASE_URL="postgresql://user:password@localhost:5432/turbokit"Commands
# Push schema to database (development)
bun run db:push
# Generate Prisma client
bun run db:generate
# Create migration
bun run db:migrate
# Open Prisma Studio
bun run db:studioUsing the Client
Import from the shared package:
import { prisma } from "@repo/database";
// Create a user
const user = await prisma.user.create({
data: {
email: "user@example.com",
name: "John Doe",
},
});
// Find users
const users = await prisma.user.findMany();
// Update user
await prisma.user.update({
where: { id: "user_123" },
data: { name: "Jane Doe" },
});
// Delete user
await prisma.user.delete({
where: { id: "user_123" },
});Re-exported Types
The package re-exports all Prisma types:
import { prisma, User, Role, Prisma } from "@repo/database";
// Use types
const user: User = await prisma.user.findFirst();
// Use enums
const admins = await prisma.user.findMany({
where: { role: Role.ADMIN },
});Tip: Prisma Studio provides a visual interface to view and edit your database at localhost:5555.