Merge pull request 'fix: migrate to Prisma 7 driver adapter (libsql) for SQLite' (#2) from claude/reverent-proskuriakova into master
Reviewed-on: #2
This commit was merged in pull request #2.
This commit is contained in:
@@ -17,7 +17,6 @@ COPY . .
|
||||
|
||||
# Generate Prisma Client (with SQLite)
|
||||
ENV DATABASE_URL="file:/app/data/dev.db"
|
||||
ENV PRISMA_CLIENT_ENGINE_TYPE=library
|
||||
RUN npx prisma generate
|
||||
|
||||
# Disable telemetry during build
|
||||
@@ -32,7 +31,6 @@ WORKDIR /app
|
||||
ENV NODE_ENV=production
|
||||
ENV NEXT_TELEMETRY_DISABLED=1
|
||||
ENV DATABASE_URL="file:/app/data/dev.db"
|
||||
ENV PRISMA_CLIENT_ENGINE_TYPE=library
|
||||
|
||||
RUN addgroup --system --gid 1001 nodejs
|
||||
RUN adduser --system --uid 1001 nextjs
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
"lint": "eslint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@libsql/client": "^0.14.0",
|
||||
"@next-auth/prisma-adapter": "^1.0.7",
|
||||
"@prisma/adapter-libsql": "^7.5.0",
|
||||
"@prisma/client": "^7.5.0",
|
||||
"googleapis": "^171.4.0",
|
||||
"lucide-react": "^0.577.0",
|
||||
|
||||
@@ -1,9 +1,16 @@
|
||||
import "dotenv/config";
|
||||
import { defineConfig, env } from "prisma/config";
|
||||
import { defineConfig } from "prisma/config";
|
||||
import { createClient } from "@libsql/client";
|
||||
import { PrismaLibSQL } from "@prisma/adapter-libsql";
|
||||
|
||||
export default defineConfig({
|
||||
schema: "prisma/schema.prisma",
|
||||
datasource: {
|
||||
url: env("DATABASE_URL") || "file:./dev.db",
|
||||
migrate: {
|
||||
adapter: async () => {
|
||||
const libsql = createClient({
|
||||
url: process.env.DATABASE_URL ?? "file:./dev.db",
|
||||
});
|
||||
return new PrismaLibSQL(libsql);
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -2,13 +2,11 @@
|
||||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||||
|
||||
generator client {
|
||||
provider = "prisma-client-js"
|
||||
engineType = "library"
|
||||
provider = "prisma-client-js"
|
||||
}
|
||||
|
||||
datasource db {
|
||||
provider = "sqlite"
|
||||
url = env("DATABASE_URL")
|
||||
}
|
||||
|
||||
model Account {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { PrismaClient } from '@prisma/client'
|
||||
import { PrismaLibSQL } from '@prisma/adapter-libsql'
|
||||
import { createClient } from '@libsql/client'
|
||||
|
||||
const globalForPrisma = globalThis as unknown as {
|
||||
prisma: PrismaClient | undefined
|
||||
@@ -6,7 +8,12 @@ const globalForPrisma = globalThis as unknown as {
|
||||
|
||||
function getPrismaClient(): PrismaClient {
|
||||
if (!globalForPrisma.prisma) {
|
||||
const libsql = createClient({
|
||||
url: process.env.DATABASE_URL ?? 'file:./dev.db',
|
||||
})
|
||||
const adapter = new PrismaLibSQL(libsql)
|
||||
globalForPrisma.prisma = new PrismaClient({
|
||||
adapter,
|
||||
log: process.env.NODE_ENV === 'development' ? ['query', 'error', 'warn'] : ['error'],
|
||||
})
|
||||
}
|
||||
@@ -15,8 +22,6 @@ function getPrismaClient(): PrismaClient {
|
||||
|
||||
// Use a Proxy so `new PrismaClient()` is only called when a property
|
||||
// is first accessed (inside a request handler), NOT at module import time.
|
||||
// This prevents PrismaClientConstructorValidationError during Next.js
|
||||
// static analysis / "Collecting page data" phase.
|
||||
export const prisma = new Proxy({} as PrismaClient, {
|
||||
get(_target, prop) {
|
||||
return Reflect.get(getPrismaClient(), prop)
|
||||
|
||||
Reference in New Issue
Block a user