Migration to Prisma 7

This commit is contained in:
CanbiZ
2025-11-28 12:55:32 +01:00
parent 2d7176914e
commit 1a5881c935
6 changed files with 40 additions and 7 deletions

3
.gitignore vendored
View File

@@ -16,6 +16,9 @@
db.sqlite
data/settings.db
# prisma generated client
/prisma/generated/
# ssh keys (sensitive)
data/ssh-keys/

View File

@@ -4,16 +4,19 @@
"private": true,
"type": "module",
"scripts": {
"build": "next build --webpack",
"build": "prisma generate && next build --webpack",
"check": "eslint . && tsc --noEmit",
"dev": "next dev --webpack",
"dev:server": "node server.js",
"dev:next": "next dev --webpack",
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
"generate": "prisma generate",
"lint": "eslint .",
"lint:fix": "eslint --fix .",
"migrate": "prisma migrate dev",
"preview": "next build && next start",
"postinstall": "prisma generate",
"start": "node server.js",
"test": "vitest",
"test:ui": "vitest --ui",
@@ -22,7 +25,9 @@
"typecheck": "tsc --noEmit"
},
"dependencies": {
"@prisma/adapter-better-sqlite3": "^7.0.1",
"@prisma/client": "^7.0.1",
"better-sqlite3": "^11.7.0",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-slot": "^1.2.4",
"@t3-oss/env-nextjs": "^0.13.8",
@@ -81,7 +86,7 @@
"postcss": "^8.5.6",
"prettier": "^3.7.1",
"prettier-plugin-tailwindcss": "^0.7.1",
"prisma": "^6.19.0",
"prisma": "^7.0.1",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
"typescript-eslint": "^8.48.0",

16
prisma.config.ts Normal file
View File

@@ -0,0 +1,16 @@
import 'dotenv/config'
import { defineConfig } from 'prisma/config'
export default defineConfig({
earlyAccess: true,
schema: 'prisma/schema.prisma',
migrate: {
migrations: 'prisma/migrations',
},
studio: {
adapter: async () => {
const { PrismaBetterSQLite3 } = await import('@prisma/adapter-better-sqlite3')
return new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! })
},
},
})

View File

@@ -1,10 +1,10 @@
generator client {
provider = "prisma-client-js"
provider = "prisma-client"
output = "./generated/prisma"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model InstalledScript {

View File

@@ -1,7 +1,11 @@
import { PrismaClient } from '@prisma/client';
import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client.js'
import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3'
const globalForPrisma = globalThis;
export const prisma = globalForPrisma.prisma ?? new PrismaClient();
const adapter = new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! });
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;

View File

@@ -1,8 +1,13 @@
import { PrismaClient } from '@prisma/client';
import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client.js'
import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3'
const globalForPrisma = globalThis as { prisma?: PrismaClient };
const adapter = new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! });
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
adapter,
log: ['warn', 'error']
});