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({