Loading...
Loading...
Migrate an existing Prisma project to ZenStack V3. Use when replacing Prisma/@prisma/client with ZenStack, converting schema.prisma to ZModel, swapping PrismaClient for ZenStackClient, updating generate/migrate scripts, mapping Prisma custom generators and client extensions, or keeping Prisma migrate tooling working.
npx skill4agent add zenstackhq/skills zenstack-migrate-from-prismazenstack-project-setupzenstack-queryingzenstack-schema-modeling| Prisma | ZenStack V3 |
|---|---|
| |
| |
| |
| |
| |
| bundled DB engine | you install a DB driver ( |
npm uninstall prisma @prisma/client
npm install @zenstackhq/schema @zenstackhq/orm
npm install --save-dev @zenstackhq/cli| Database | Install |
|---|---|
| PostgreSQL | |
| MySQL | |
| SQLite | |
has a peer dependency on@zenstackhq/cli, which is installed automatically when needed for migration commands (ZenStack's migrate commands wrap Prisma Migrate).prisma
schema.prismazenstack/schema.zmodelgenerator client { ... }zen generatedatasourceurlimportzen checkzenstack-access-control@@delegatezenstack-schema-modeling{ "scripts": { "generate": "zen generate" } }zen generatenew PrismaClient()new ZenStackClient(schema, { dialect })zenstack-queryingimport { ZenStackClient } from '@zenstackhq/orm';
import { PostgresDialect } from '@zenstackhq/orm/dialects/postgres';
import { schema } from './zenstack/schema';
import { Pool } from 'pg';
export const db = new ZenStackClient(schema, {
dialect: new PostgresDialect({
pool: new Pool({ connectionString: process.env.DATABASE_URL }),
}),
});findManycreateupdateUsermodelsUserCreateArgsinput{
"scripts": {
"db:push": "zen db push",
"migrate:dev": "zen migrate dev",
"migrate:deploy": "zen migrate deploy"
}
}prisma/migrationszenstack/migrationszenstack/schema.zmodelzenstack-db-migrationschema.prisma@core/prismaplugin prisma {
provider = '@core/prisma'
output = './schema.prisma'
}{ "scripts": { "generate": "zen generate && prisma generate --schema=zenstack/schema.prisma" } }| Prisma extension | ZenStack equivalent |
|---|---|
| Query extension (intercept calls) | A runtime plugin via |
| Result extension (computed fields) | |
zen generatezenstack-crud-serverAlready on ZenStack V2? Start here (V2 was Prisma-based), then apply the V2→V3 deltas in(package renames, policy plugin,zenstack-project-setup/post-update, types+mixins, grouped hooks).before()
references/