diff --git a/server/db/pg/driver.ts b/server/db/pg/driver.ts index 86a0c0352..9f6901dda 100644 --- a/server/db/pg/driver.ts +++ b/server/db/pg/driver.ts @@ -87,7 +87,7 @@ function createDb() { export const db = createDb(); export default db; -export const primaryDb = db.$primary; +export const primaryDb = db.$primary as typeof db; // is this typeof a problem - techincally they are different types export type Transaction = Parameters< Parameters<(typeof db)["transaction"]>[0] >[0]; diff --git a/server/routers/siteResource/createSiteResource.ts b/server/routers/siteResource/createSiteResource.ts index 1cf9c38d5..bc80e8b41 100644 --- a/server/routers/siteResource/createSiteResource.ts +++ b/server/routers/siteResource/createSiteResource.ts @@ -10,7 +10,8 @@ import { SiteResource, siteResources, sites, - userSiteResources + userSiteResources, + primaryDb } from "@server/db"; import { getUniqueSiteResourceName } from "@server/db/names"; import { @@ -519,12 +520,10 @@ export async function createSiteResource( // own transaction so it always executes on the primary — avoiding any // replica-lag issues while still allowing the HTTP response to return // early. - db.transaction(async (trx) => { - await rebuildClientAssociationsFromSiteResource( - newSiteResource!, - trx - ); - }).catch((err) => { + rebuildClientAssociationsFromSiteResource( + newSiteResource!, + primaryDb + ).catch((err) => { logger.error( `Error rebuilding client associations for site resource ${newSiteResource!.siteResourceId}:`, err diff --git a/server/routers/siteResource/deleteSiteResource.ts b/server/routers/siteResource/deleteSiteResource.ts index 7dbb111ad..5a4eb1cc9 100644 --- a/server/routers/siteResource/deleteSiteResource.ts +++ b/server/routers/siteResource/deleteSiteResource.ts @@ -1,6 +1,6 @@ import { Request, Response, NextFunction } from "express"; import { z } from "zod"; -import { db, newts, sites } from "@server/db"; +import { db, newts, primaryDb, sites } from "@server/db"; import { siteResources } from "@server/db"; import response from "@server/lib/response"; import HttpCode from "@server/types/HttpCode"; @@ -73,12 +73,10 @@ export async function deleteSiteResource( // own transaction so it always executes on the primary — avoiding any // replica-lag issues while still allowing the HTTP response to return // early. - db.transaction(async (trx) => { - await rebuildClientAssociationsFromSiteResource( - removedSiteResource, - trx - ); - }).catch((err) => { + rebuildClientAssociationsFromSiteResource( + removedSiteResource, + primaryDb + ).catch((err) => { logger.error( `Error rebuilding client associations for site resource ${removedSiteResource!.siteResourceId}:`, err