Force initialization to be lazy, preventing docker build errors
This commit is contained in:
+25
-14
@@ -4,19 +4,30 @@ import pg from 'pg';
|
|||||||
import { PrismaPg } from '@prisma/adapter-pg';
|
import { PrismaPg } from '@prisma/adapter-pg';
|
||||||
import { PrismaClient } from '$lib/generated/prisma/client';
|
import { PrismaClient } from '$lib/generated/prisma/client';
|
||||||
|
|
||||||
const ca_cert = process.env.DO_CA_CERTIFICATE ?? '';
|
let _prisma: PrismaClient | undefined;
|
||||||
|
|
||||||
const pool = new pg.Pool({
|
function getPrisma(): PrismaClient {
|
||||||
connectionString: process.env.DATABASE_URL,
|
if (!_prisma) {
|
||||||
ssl: ca_cert
|
const ca_cert = process.env.DO_CA_CERTIFICATE ?? '';
|
||||||
? {
|
|
||||||
rejectUnauthorized: true,
|
const pool = new pg.Pool({
|
||||||
ca: fs.readFileSync(ca_cert).toString()
|
connectionString: process.env.DATABASE_URL,
|
||||||
}
|
ssl: ca_cert
|
||||||
: undefined
|
? {
|
||||||
|
rejectUnauthorized: true,
|
||||||
|
ca: fs.readFileSync(ca_cert).toString()
|
||||||
|
}
|
||||||
|
: undefined
|
||||||
|
});
|
||||||
|
|
||||||
|
const adapter = new PrismaPg(pool);
|
||||||
|
_prisma = new PrismaClient({ adapter });
|
||||||
|
}
|
||||||
|
return _prisma;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const prisma = new Proxy({} as PrismaClient, {
|
||||||
|
get(_, prop) {
|
||||||
|
return (getPrisma() as Record<string | symbol, unknown>)[prop];
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const adapter = new PrismaPg(pool);
|
|
||||||
const prisma = new PrismaClient({ adapter });
|
|
||||||
|
|
||||||
export { prisma };
|
|
||||||
|
|||||||
Reference in New Issue
Block a user