Mischa
10/12/2021, 2:17 PMinterface TableNameQueryResult {
tablename: string
}
export async function truncateAllTables() {
const qres = await prisma.$queryRaw<
TableNameQueryResult[]
>`SELECT tablename FROM pg_tables WHERE schemaname='public'`
for (const { tablename } of qres) {
if (tablename !== "_prisma_migrations") {
// try {
await prisma.$queryRaw`TRUNCATE TABLE "public"."${tablename}" CASCADE;`
// } catch (error) {
// console.log({ error })
// }
}
}
}
It gives me this error:
Invalid `prisma.queryRaw()` invocation:
Your raw query had an incorrect number of parameters. Expected: `0`, actual: `1`.
81 | if (tablename !== "_prisma_migrations") {
82 | // try {
> 83 | await prisma.$queryRaw`TRUNCATE TABLE "public"."${tablename}" CASCADE;`
| ^
tak1n
10/12/2021, 2:42 PMasync truncate() {
for (const { tablename } of await this.$queryRaw<
{ tablename: string }[]
>`SELECT tablename FROM pg_tables WHERE schemaname='public'`) {
if (tablename !== '_prisma_migrations') {
// eslint-disable-next-line no-await-in-loop
await this.$queryRawUnsafe<void>(
`TRUNCATE TABLE "public"."${tablename}" CASCADE;`,
);
}
}
}
so using $queryRawUnsafe
vs $queryRaw
Mischa
10/12/2021, 3:42 PMMischa
10/12/2021, 7:45 PMRyan
10/13/2021, 5:30 AM$executeRawUnsafe
for truncating tables dynamically.Mischa
10/13/2021, 5:55 AMMischa
10/13/2021, 5:55 AM$queryRaw
with query params in prisma 3?Ryan
10/13/2021, 6:11 AM$queryRawUnsafe
is the way to go.Mischa
10/13/2021, 6:13 AMqueryRaw
and use parentheses I get the error:Ryan
10/13/2021, 6:17 AMMischa
10/13/2021, 6:18 AMRyan
10/13/2021, 6:21 AMMischa
10/13/2021, 6:22 AMRyan
10/13/2021, 6:36 AMMischa
10/13/2021, 6:37 AM