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", "@auth/prisma-adapter": "^2.7.4",
"@aws-sdk/client-s3": "^3.968.0", "@aws-sdk/client-s3": "^3.968.0",
"@hookform/resolvers": "^3.9.1", "@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-avatar": "^1.1.11",
"@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.4", "@radix-ui/react-dialog": "^1.1.4",
@ -78,7 +79,7 @@
"jsdom": "^27.0.1", "jsdom": "^27.0.1",
"postcss": "^8.4.49", "postcss": "^8.4.49",
"prettier": "^3.4.2", "prettier": "^3.4.2",
"prisma": "^6.2.1", "prisma": "^7.0.0",
"tailwindcss": "^3.4.17", "tailwindcss": "^3.4.17",
"tsx": "^4.19.2", "tsx": "^4.19.2",
"typescript": "^5.7.3", "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 { datasource db {
provider = "postgresql" 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 { PrismaClient } from '@prisma/client'
import { PrismaPg } from '@prisma/adapter-pg'
const globalForPrisma = globalThis as unknown as { const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined 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 if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma