Migration to Prisma 7
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -16,6 +16,9 @@
|
|||||||
db.sqlite
|
db.sqlite
|
||||||
data/settings.db
|
data/settings.db
|
||||||
|
|
||||||
|
# prisma generated client
|
||||||
|
/prisma/generated/
|
||||||
|
|
||||||
# ssh keys (sensitive)
|
# ssh keys (sensitive)
|
||||||
data/ssh-keys/
|
data/ssh-keys/
|
||||||
|
|
||||||
|
|||||||
@@ -4,16 +4,19 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "next build --webpack",
|
"build": "prisma generate && next build --webpack",
|
||||||
"check": "eslint . && tsc --noEmit",
|
"check": "eslint . && tsc --noEmit",
|
||||||
"dev": "next dev --webpack",
|
"dev": "next dev --webpack",
|
||||||
"dev:server": "node server.js",
|
"dev:server": "node server.js",
|
||||||
"dev:next": "next dev --webpack",
|
"dev:next": "next dev --webpack",
|
||||||
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
"format:check": "prettier --check \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
||||||
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
"format:write": "prettier --write \"**/*.{ts,tsx,js,jsx,mdx}\" --cache",
|
||||||
|
"generate": "prisma generate",
|
||||||
"lint": "eslint .",
|
"lint": "eslint .",
|
||||||
"lint:fix": "eslint --fix .",
|
"lint:fix": "eslint --fix .",
|
||||||
|
"migrate": "prisma migrate dev",
|
||||||
"preview": "next build && next start",
|
"preview": "next build && next start",
|
||||||
|
"postinstall": "prisma generate",
|
||||||
"start": "node server.js",
|
"start": "node server.js",
|
||||||
"test": "vitest",
|
"test": "vitest",
|
||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
@@ -22,7 +25,9 @@
|
|||||||
"typecheck": "tsc --noEmit"
|
"typecheck": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@prisma/adapter-better-sqlite3": "^7.0.1",
|
||||||
"@prisma/client": "^7.0.1",
|
"@prisma/client": "^7.0.1",
|
||||||
|
"better-sqlite3": "^11.7.0",
|
||||||
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
||||||
"@radix-ui/react-slot": "^1.2.4",
|
"@radix-ui/react-slot": "^1.2.4",
|
||||||
"@t3-oss/env-nextjs": "^0.13.8",
|
"@t3-oss/env-nextjs": "^0.13.8",
|
||||||
@@ -81,7 +86,7 @@
|
|||||||
"postcss": "^8.5.6",
|
"postcss": "^8.5.6",
|
||||||
"prettier": "^3.7.1",
|
"prettier": "^3.7.1",
|
||||||
"prettier-plugin-tailwindcss": "^0.7.1",
|
"prettier-plugin-tailwindcss": "^0.7.1",
|
||||||
"prisma": "^6.19.0",
|
"prisma": "^7.0.1",
|
||||||
"tailwindcss": "^4.1.17",
|
"tailwindcss": "^4.1.17",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"typescript-eslint": "^8.48.0",
|
"typescript-eslint": "^8.48.0",
|
||||||
|
|||||||
16
prisma.config.ts
Normal file
16
prisma.config.ts
Normal 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! })
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
generator client {
|
generator client {
|
||||||
provider = "prisma-client-js"
|
provider = "prisma-client"
|
||||||
|
output = "./generated/prisma"
|
||||||
}
|
}
|
||||||
|
|
||||||
datasource db {
|
datasource db {
|
||||||
provider = "sqlite"
|
provider = "sqlite"
|
||||||
url = env("DATABASE_URL")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
model InstalledScript {
|
model InstalledScript {
|
||||||
|
|||||||
@@ -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;
|
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;
|
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
|
||||||
|
|||||||
@@ -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 globalForPrisma = globalThis as { prisma?: PrismaClient };
|
||||||
|
|
||||||
|
const adapter = new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! });
|
||||||
|
|
||||||
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
|
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
|
||||||
|
adapter,
|
||||||
log: ['warn', 'error']
|
log: ['warn', 'error']
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user