1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-07-20 20:21:18 -04:00

running back to postgres, once again...

This commit is contained in:
2025-02-12 15:12:50 -05:00
parent 92e58805ec
commit 83527e0c61
11 changed files with 128 additions and 372 deletions

View File

@@ -1,28 +1,12 @@
import { PrismaClient } from "@prisma/client";
import { PrismaLibSQL } from "@prisma/adapter-libsql";
import { createClient } from "@libsql/client";
import { PrismaClient } from "@prisma/client/edge";
import { withAccelerate } from "@prisma/extension-accelerate";
// creating PrismaClient here prevents next.js from starting too many concurrent prisma instances and exhausting the
// number of connection pools available (especially when hot reloading from `next dev`).
// https://www.prisma.io/docs/guides/other/troubleshooting-orm/help-articles/nextjs-prisma-client-dev-practices
const prismaClientSingleton = () => {
const libsql = createClient({
// TODO: use a local .db file for development. https://www.prisma.io/docs/orm/overview/databases/sqlite#connection-url
url: `${process.env.TURSO_DATABASE_URL}`,
authToken: `${process.env.TURSO_AUTH_TOKEN}`,
});
const globalForPrisma = global as unknown as { prisma: PrismaClient };
const adapter = new PrismaLibSQL(libsql);
export const prisma = globalForPrisma.prisma || new PrismaClient().$extends(withAccelerate());
return new PrismaClient({ adapter });
};
declare global {
// eslint-disable-next-line no-var
var prisma: undefined | ReturnType<typeof prismaClientSingleton>;
}
export const prisma = globalThis.prisma ?? prismaClientSingleton();
if (process.env.NODE_ENV !== "production") globalThis.prisma = prisma;
if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma;