- Ajout de la table de relation 1-1 NoteEmbedding pour alléger Model Note - Refactor complet des actions IA sémantique et Memory Echo pour utiliser la jointure - Migration propre des 85 embeddings locaux existants - Ajout PRAGMA journal_mode=WAL pour la concurrence au sein de lib/prisma - Ajout npm run db:switch pour configuration auto SQLite / PostgreSQL - Fix du compilateur Turbopack et Next-PWA
30 lines
984 B
TypeScript
30 lines
984 B
TypeScript
// @ts-ignore - Generated client
|
|
import { PrismaClient } from '../prisma/client-generated'
|
|
|
|
const prismaClientSingleton = () => {
|
|
return new PrismaClient({
|
|
datasources: {
|
|
db: {
|
|
url: process.env.DATABASE_URL || "file:/Users/sepehr/dev/Keep/keep-notes/prisma/dev.db",
|
|
},
|
|
},
|
|
})
|
|
}
|
|
|
|
declare const globalThis: {
|
|
prismaGlobal: ReturnType<typeof prismaClientSingleton>;
|
|
} & typeof global;
|
|
|
|
const prisma = globalThis.prismaGlobal ?? prismaClientSingleton()
|
|
|
|
// Enable WAL mode for SQLite to improve concurrent read/write performance
|
|
if (process.env.DATABASE_URL?.includes('sqlite') || prismaClientSingleton.toString().includes('sqlite')) {
|
|
// Execute via an un-awaited promise or fire-and-forget, PRAGMA is session-based but setting it globally sets DB state
|
|
prisma.$executeRawUnsafe('PRAGMA journal_mode = WAL;').catch(console.error)
|
|
}
|
|
|
|
export { prisma }
|
|
export default prisma
|
|
|
|
if (process.env.NODE_ENV !== 'production') globalThis.prismaGlobal = prisma
|