From 64c5a5caedebecc3291e3cf08ec9010438cef743 Mon Sep 17 00:00:00 2001 From: Maxwell <145994855+ping-maxwell@users.noreply.github.com> Date: Fri, 19 Sep 2025 00:12:38 +1000 Subject: [PATCH] fix(create-adapter): disable transaction by default (#4750) --- packages/better-auth/src/adapters/adapter-factory/index.ts | 4 +++- packages/better-auth/src/adapters/adapter-factory/types.ts | 3 ++- .../src/adapters/drizzle-adapter/drizzle-adapter.ts | 2 +- .../better-auth/src/adapters/kysely-adapter/kysely-adapter.ts | 2 +- .../src/adapters/mongodb-adapter/mongodb-adapter.ts | 2 +- .../better-auth/src/adapters/prisma-adapter/prisma-adapter.ts | 2 +- 6 files changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/better-auth/src/adapters/adapter-factory/index.ts b/packages/better-auth/src/adapters/adapter-factory/index.ts index 54bbb052e2..28792595f0 100644 --- a/packages/better-auth/src/adapters/adapter-factory/index.ts +++ b/packages/better-auth/src/adapters/adapter-factory/index.ts @@ -9,6 +9,7 @@ import type { } from "../../types"; import { generateId as defaultGenerateId, logger } from "../../utils"; import type { + AdapterFactoryConfig, AdapterFactoryOptions, AdapterTestDebugLogs, CleanedWhere, @@ -69,7 +70,8 @@ export const createAdapterFactory = supportsJSON: cfg.supportsJSON ?? false, adapterName: cfg.adapterName ?? cfg.adapterId, supportsNumericIds: cfg.supportsNumericIds ?? true, - }; + transaction: cfg.transaction ?? false, + } satisfies AdapterFactoryConfig; if ( options.advanced?.database?.useNumberId === true && diff --git a/packages/better-auth/src/adapters/adapter-factory/types.ts b/packages/better-auth/src/adapters/adapter-factory/types.ts index 8319053b42..8b83829bb1 100644 --- a/packages/better-auth/src/adapters/adapter-factory/types.ts +++ b/packages/better-auth/src/adapters/adapter-factory/types.ts @@ -99,7 +99,8 @@ export interface AdapterFactoryConfig { * Execute multiple operations in a transaction. * * If the database doesn't support transactions, set this to `false` and operations will be executed sequentially. - * + * + * @default false */ transaction?: | false diff --git a/packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts b/packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts index 226ccbeb22..e3ab63ffa0 100644 --- a/packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts +++ b/packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts @@ -361,7 +361,7 @@ export const drizzleAdapter = (db: DB, config: DrizzleAdapterConfig) => { usePlural: config.usePlural ?? false, debugLogs: config.debugLogs ?? false, transaction: - (config.transaction ?? true) + (config.transaction ?? false) ? (cb) => db.transaction((tx: DB) => { const adapter = createAdapterFactory({ diff --git a/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts b/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts index 518c031498..75f1702ff2 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts +++ b/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts @@ -372,7 +372,7 @@ export const kyselyAdapter = ( : true, supportsJSON: false, transaction: - (config?.transaction ?? true) + (config?.transaction ?? false) ? (cb) => db.transaction().execute((trx) => { const adapter = createAdapterFactory({ diff --git a/packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts b/packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts index 447783e631..f0624d4bfc 100644 --- a/packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts +++ b/packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts @@ -282,7 +282,7 @@ export const mongodbAdapter = (db: Db, config?: MongoDBAdapterConfig) => { }, supportsNumericIds: false, transaction: - config?.client && (config?.transaction ?? true) + config?.client && (config?.transaction ?? false) ? async (cb) => { if (!config.client) { return cb(lazyAdapter!(lazyOptions!)); diff --git a/packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts b/packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts index 140de02aa0..08b2f09414 100644 --- a/packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts +++ b/packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts @@ -241,7 +241,7 @@ export const prismaAdapter = (prisma: PrismaClient, config: PrismaConfig) => { usePlural: config.usePlural ?? false, debugLogs: config.debugLogs ?? false, transaction: - (config.transaction ?? true) + (config.transaction ?? false) ? (cb) => (prisma as PrismaClientInternal).$transaction((tx) => { const adapter = createAdapterFactory({