TurboKit
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.json

Configuration

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:studio

Using 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.

On this page