Database (Prisma)
PostgreSQL and Prisma in packages/db.
This project uses Prisma in packages/db against PostgreSQL.
Prerequisites
- PostgreSQL locally (or remote). DBngin is a simple option on macOS/Windows.
DATABASE_URLin root.env(see Environment).- Initial migration from the monorepo root:
Migrations live in packages/db/prisma/migrations/.
Configuration
DATABASE_URL— e.g.postgresql://postgres@localhost:5432/your-db-nameDIRECT_URL(Supabase / pooler bypass) — uncommentdirectUrlinpackages/db/prisma/schema.prismawhen needed
Schema
- Schema file:
packages/db/prisma/schema.prisma - After edits, run
pnpm db:migrate(runsprisma migrate devin@zts/db)
Do not use prisma db push for routine schema changes. Use migrations only.
Prisma client
- Generate:
pnpm db:generate(root) or as part ofdb:migrate - Output:
packages/db/src/generated/prisma - Singleton:
packages/db/src/index.ts(extensions inpackages/db/src/extensions/)
Usage in tRPC
db is injected in createTRPCContext in packages/trpc/src/trpc.ts as ctx.db.
Scripts (root)
| Command | Purpose |
|---|---|
pnpm db:migrate | Dev migrations |
pnpm db:migrate:deploy | Production deploy |
pnpm db:generate | Regenerate client |
pnpm db:studio | Prisma Studio GUI |
pnpm db:seed | Seed (requires ZTS_ALLOW_SEED=true) |