Reuben Porter
10/20/2021, 4:45 PMError querying the database: db error: FATAL: sorry, too many clients already
error?Austin
10/20/2021, 8:32 PMReuben Porter
10/21/2021, 10:03 AMReuben Porter
10/21/2021, 12:26 PMReuben Porter
10/21/2021, 12:26 PMReuben Porter
10/21/2021, 1:56 PMRyan
10/22/2021, 4:49 AMprisma.$disconnect()
after each test?Reuben Porter
10/22/2021, 11:14 AMReuben Porter
10/22/2021, 11:15 AMReuben Porter
10/22/2021, 11:15 AMReuben Porter
10/22/2021, 11:15 AMReuben Porter
10/22/2021, 12:26 PMRyan
10/22/2021, 1:07 PM--runInBand
shouldn’t cause this. What’s the singleton pattern?Reuben Porter
10/22/2021, 1:08 PMReuben Porter
10/22/2021, 1:08 PMimport { PrismaClient } from '@prisma/client';
declare global {
var prisma: PrismaClient | undefined;
}
export const prisma = global.prisma || new PrismaClient();
if (process.env.NODE_ENV !== 'production') global.prisma = prisma;
Reuben Porter
10/22/2021, 1:08 PMReuben Porter
10/22/2021, 1:08 PMimport { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default prisma
Reuben Porter
10/22/2021, 1:11 PMReuben Porter
10/22/2021, 1:13 PMimport { Prisma as db} from '@prisma/client';
...
AND dashboard.status IN (${db.join(filters.statuses)})
or
import { Prisma as db} from '@prisma/client';
...
ORDER BY "${db.raw(filters.orderBy)}" ${db.raw(filters.dir)}
no longer works, whereas if I use
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default prisma
both of those raw queries above workRyan
10/22/2021, 1:21 PMdb
?Ryan
10/22/2021, 1:22 PMjoin
and raw
come from Prisma
so that has no relation to the client you’re exporting.Reuben Porter
10/22/2021, 1:22 PMReuben Porter
10/22/2021, 1:23 PMReuben Porter
10/22/2021, 1:23 PMosv3-test-api | PrismaClientKnownRequestError:
osv3-test-api | Invalid `prisma.queryRaw()` invocation:
osv3-test-api |
osv3-test-api |
osv3-test-api | Raw query failed. Code: `42601`. Message: `db error: ERROR: syntax error at or near "$8"`
Reuben Porter
10/22/2021, 1:23 PMORDER BY "$7" $8
Ryan
10/22/2021, 1:24 PMReuben Porter
10/22/2021, 1:25 PMReuben Porter
10/22/2021, 1:25 PMReuben Porter
10/22/2021, 1:25 PMReuben Porter
10/22/2021, 1:25 PMReuben Porter
10/22/2021, 1:26 PMimport { Prisma as db } from '@prisma/client';
import { prisma } from 'lib/client';
deffo not a mistakeReuben Porter
10/22/2021, 1:27 PMimport { PrismaClient } from '@prisma/client';
declare global {
var prisma: PrismaClient | undefined;
}
export const prisma = global.prisma || new PrismaClient();
if (process.env.NODE_ENV !== 'production') global.prisma = prisma;
Ryan
10/22/2021, 1:36 PMReuben Porter
10/22/2021, 1:36 PMRyan
10/22/2021, 1:38 PMReuben Porter
10/22/2021, 1:39 PMRyan
10/22/2021, 1:42 PMSELECT sum(numbackends) FROM pg_stat_database;
This should give you the open connections.Reuben Porter
10/22/2021, 1:43 PMReuben Porter
10/22/2021, 1:44 PMRyan
10/22/2021, 1:48 PMReuben Porter
10/22/2021, 1:52 PMReuben Porter
10/22/2021, 1:52 PMReuben Porter
10/22/2021, 2:00 PMimport { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
export default prisma
fixes Prisma.raw and Prisma.join however look how many connections I end up with...Reuben Porter
10/22/2021, 2:00 PMRyan
10/22/2021, 2:03 PMRyan
10/22/2021, 2:05 PMReuben Porter
10/22/2021, 2:05 PMReuben Porter
10/22/2021, 2:05 PMReuben Porter
10/22/2021, 2:07 PMafterEach(async () => {
await prisma.$disconnect();
});
but the connections sum just increases - so it's not disconnectingReuben Porter
10/22/2021, 3:33 PMimport { join, raw } from "sql-template-tag";
Ryan
10/25/2021, 12:08 PMReuben Porter
10/25/2021, 12:10 PMRyan
10/25/2021, 12:13 PMReuben Porter
10/25/2021, 12:14 PMReuben Porter
10/25/2021, 12:14 PMReuben Porter
10/25/2021, 12:14 PMRyan
10/25/2021, 12:17 PM