migrate / prisma
leave prisma, keep postgres.
prisma's schema.prisma format and client are powerful but lock you into prisma's migration model + their query engine. briven is the same postgres, with a typed query builder that doesn't need a code-generation step and ships with realtime + hosting.
what you're afraid of
do i have to rewrite every PrismaClient call?
yes — but the new shape is similar. `prisma.notes.findMany({ where: { id } })` becomes `ctx.db("notes").select().where({ id })`. it's a find-and-replace exercise, not a redesign.
does my schema.prisma port automatically?
we parse schema.prisma and emit briven/schema.ts. field decorators map to briven column helpers. relations carry over. enums and check constraints translate.
do i lose prisma's migration history?
we keep your current schema state (that's what gets pg_dumped); briven owns future migrations. your old prisma migration files become reference docs, not active.
the conceptual mapping
your mental model survives the move. left column: what you call it in prisma. right column: where it lives in briven.
| prisma | briven |
|---|---|
| schema.prisma model { ... } | briven table({ ... }) |
| @id @default(cuid()) | text().primaryKey() + ULID at insert time |
| prisma relations (@relation) | briven foreign keys + JOIN helpers |
| PrismaClient.user.findMany({ where: ... }) | ctx.db("user").select().where({ ... }) |
| prisma generate (codegen) | no codegen — briven's ctx.db is inferred from your schema |
| prisma migrate dev | briven deploy — auto-diffs and generates the migration |
what the migration actually costs
ranked honestly: what comes for free, what we automate, what stays manual.
- free
data — pg_dump from your prisma database, pg_restore into briven.
- auto
schema.prisma → briven/schema.ts translator. ~95% of fields are mechanical.
- manual
PrismaClient → ctx.db rewrite throughout your service layer. find-and-replace plus light editing.
- manual
prisma middleware → briven function middleware (auth checks, logging, etc.).
questions you actually have
- will i miss the prisma query engine?
- briven's ctx.db is a thin typed wrapper over node-postgres / bun-sql. there's no separate query engine binary. for most apps this is faster and simpler.
- what about prisma's soft-delete and audit extensions?
- you'll write these as briven functions instead. it's less magical (no monkey-patching) and easier to debug.
- does briven generate types from the schema?
- yes, but inline at usage time — no separate codegen step. add a column, the types update.
ready to start? no signup needed
leave us your email and we'll reach out within one business day. your prisma stays untouched the entire time.
already got a briven account?
jump straight into the in-product wizard for a more detailed intake form — you can save progress and track status from your dashboard.