refactor: 降级到 Prisma 6,移除 adapter 依赖

Prisma 6 内置 SQLite 引擎,无需 adapter、无需编译工具链,
与 no-whatever 项目保持一致的技术方案。
This commit is contained in:
田东生
2026-02-25 18:48:20 +08:00
parent 115f522056
commit c5505868e1
7 changed files with 65 additions and 1015 deletions
-1
View File
@@ -32,7 +32,6 @@ COPY --from=builder /app/template.db ./template.db
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
COPY --from=builder /app/node_modules/@libsql ./node_modules/@libsql
RUN mkdir -p /app/data && chown nextjs:nodejs /app/data
-1
View File
@@ -2,7 +2,6 @@ import type { NextConfig } from "next";
const nextConfig: NextConfig = {
output: "standalone",
serverExternalPackages: ["@libsql/client"],
};
export default nextConfig;
+53 -983
View File
File diff suppressed because it is too large Load Diff
+2 -3
View File
@@ -9,8 +9,7 @@
"lint": "eslint"
},
"dependencies": {
"@prisma/adapter-libsql": "^7.4.1",
"@prisma/client": "^7.4.1",
"@prisma/client": "^6.19.2",
"framer-motion": "^12.34.3",
"lucide-react": "^0.575.0",
"next": "16.1.6",
@@ -24,7 +23,7 @@
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.1.6",
"prisma": "^7.4.1",
"prisma": "^6.19.2",
"tailwindcss": "^4",
"typescript": "^5"
}
-14
View File
@@ -1,14 +0,0 @@
// This file was generated by Prisma, and assumes you have installed the following:
// npm install --save-dev prisma dotenv
import "dotenv/config";
import { defineConfig } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
migrations: {
path: "prisma/migrations",
},
datasource: {
url: process.env["DATABASE_URL"],
},
});
+2 -2
View File
@@ -1,10 +1,10 @@
generator client {
provider = "prisma-client"
output = "../src/generated/prisma"
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model Item {
+8 -11
View File
@@ -1,14 +1,11 @@
import { PrismaClient } from "@/generated/prisma/client";
import { PrismaLibSql } from "@prisma/adapter-libsql";
import { PrismaClient } from "@prisma/client";
const globalForPrisma = globalThis as unknown as { prisma: PrismaClient };
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined;
};
function createClient() {
const url = process.env.DATABASE_URL ?? "file:./dev.db";
const adapter = new PrismaLibSql({ url });
return new PrismaClient({ adapter });
export const prisma = globalForPrisma.prisma ?? new PrismaClient();
if (process.env.NODE_ENV !== "production") {
globalForPrisma.prisma = prisma;
}
export const prisma = globalForPrisma.prisma || createClient();
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;