prisma-upgrade-v7-prisma-config
SKILL.md
Prisma Config
Prisma v7 introduces prisma.config.ts as the central configuration file for the Prisma CLI.
Location
Place prisma.config.ts at your project root (next to package.json).
Basic Configuration
import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
migrations: {
path: 'prisma/migrations',
},
datasource: {
url: env('DATABASE_URL'),
},
})
Configuration Options
schema
Path to your Prisma schema file:
schema: 'prisma/schema.prisma'
datasource.url
Database connection URL:
datasource: {
url: env('DATABASE_URL'),
}
datasource.directUrl
Direct connection URL (bypassing connection pooler):
datasource: {
url: env('DATABASE_URL'),
directUrl: env('DIRECT_DATABASE_URL'),
}
datasource.shadowDatabaseUrl
Shadow database for migrations:
datasource: {
url: env('DATABASE_URL'),
shadowDatabaseUrl: env('SHADOW_DATABASE_URL'),
}
migrations.path
Directory for migration files:
migrations: {
path: 'prisma/migrations',
}
migrations.seed
Seed command for prisma db seed:
migrations: {
path: 'prisma/migrations',
seed: 'tsx prisma/seed.ts',
}
Full Example
import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
// Schema location
schema: 'prisma/schema.prisma',
// Migration configuration
migrations: {
path: 'prisma/migrations',
seed: 'tsx prisma/seed.ts',
},
// Database connection
datasource: {
url: env('DATABASE_URL'),
directUrl: env('DIRECT_DATABASE_URL'),
shadowDatabaseUrl: env('SHADOW_DATABASE_URL'),
},
})
Environment Variables
The env() helper
Use env() to reference environment variables:
import { env } from 'prisma/config'
datasource: {
url: env('DATABASE_URL'),
}
This provides type safety but does NOT load .env files automatically.
Loading .env files
Install and import dotenv:
npm install dotenv
import 'dotenv/config' // Must be first import
import { defineConfig, env } from 'prisma/config'
Migrating from v6
Before (v6) - schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
}
After (v7) - prisma.config.ts
import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
export default defineConfig({
schema: 'prisma/schema.prisma',
datasource: {
url: env('DATABASE_URL'),
directUrl: env('DIRECT_URL'),
},
})
And update schema.prisma:
datasource db {
provider = "postgresql"
// URLs now in prisma.config.ts
}
Custom Config Path
Use --config flag with CLI commands:
prisma migrate dev --config ./config/prisma.config.ts
Monorepo Configuration
import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'
import path from 'path'
export default defineConfig({
schema: path.join(__dirname, 'packages/database/prisma/schema.prisma'),
migrations: {
path: path.join(__dirname, 'packages/database/prisma/migrations'),
},
datasource: {
url: env('DATABASE_URL'),
},
})
Weekly Installs
2
Repository
prisma/cursor-pluginGitHub Stars
5
First Seen
Mar 18, 2026
Security Audits
Installed on
amp2
cline2
opencode2
cursor2
kimi-cli2
codex2