Upgrade to Prisma 7 with adapter pattern
Build and Push Docker Image / lint-and-typecheck (push) Failing after 26s Details
Build and Push Docker Image / build (push) Has been skipped Details

- Update prisma and @prisma/client to ^7.0.0
- Add @prisma/adapter-pg for PostgreSQL connections
- Create prisma.config.ts for datasource configuration
- Remove url from schema.prisma datasource block
- Update prisma.ts to use PrismaPg adapter pattern

Breaking change in Prisma 7: datasource url now configured
via prisma.config.ts instead of schema.prisma

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Matt 2026-01-17 14:42:50 +01:00
parent 49e5f4c43f
commit 67bb4138f3
4 changed files with 22 additions and 4 deletions

View File

@ -21,7 +21,8 @@
"@auth/prisma-adapter": "^2.7.4",
"@aws-sdk/client-s3": "^3.968.0",
"@hookform/resolvers": "^3.9.1",
"@prisma/client": "^6.2.1",
"@prisma/adapter-pg": "^7.0.0",
"@prisma/client": "^7.0.0",
"@radix-ui/react-avatar": "^1.1.11",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.4",
@ -78,7 +79,7 @@
"jsdom": "^27.0.1",
"postcss": "^8.4.49",
"prettier": "^3.4.2",
"prisma": "^6.2.1",
"prisma": "^7.0.0",
"tailwindcss": "^3.4.17",
"tsx": "^4.19.2",
"typescript": "^5.7.3",

12
prisma/prisma.config.ts Normal file
View File

@ -0,0 +1,12 @@
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'),
},
})

View File

@ -7,7 +7,7 @@ generator client {
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
// url configured in prisma.config.ts (Prisma 7+)
}
// ============================================================================

View File

@ -1,10 +1,15 @@
import { PrismaClient } from '@prisma/client'
import { PrismaPg } from '@prisma/adapter-pg'
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined
}
export const prisma = globalForPrisma.prisma ?? new PrismaClient()
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL!,
})
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter })
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma