[PR #4414] [MERGED] feat: database transaction support #5370

Closed
opened 2026-03-13 12:20:31 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/4414
Author: @himself65
Created: 9/4/2025
Status: Merged
Merged: 9/10/2025
Merged by: @himself65

Base: canaryHead: feat-database-transaction-support


📝 Commits (5)

  • eff2dbc feat: database transaction support
  • 0864907 feat: database transaction support (#4532)
  • c40fae2 Merge branch 'canary' into feat-database-transaction-support
  • baad625 docs: update
  • a56fb6c test: transaction for memory adapter

📊 Changes

16 files changed (+647 additions, -228 deletions)

View changed files

📝 docs/content/docs/adapters/mongo.mdx (+1 -1)
📝 docs/content/docs/guides/create-a-db-adapter.mdx (+10 -0)
📝 packages/better-auth/src/__snapshots__/init.test.ts.snap (+2 -0)
📝 packages/better-auth/src/adapters/create-adapter/index.ts (+33 -12)
📝 packages/better-auth/src/adapters/create-adapter/types.ts (+15 -0)
📝 packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts (+47 -12)
📝 packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts (+61 -21)
📝 packages/better-auth/src/adapters/memory-adapter/adapter.memory.test.ts (+4 -0)
📝 packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts (+21 -2)
📝 packages/better-auth/src/adapters/mongodb-adapter/adapter.mongo-db.test.ts (+11 -3)
📝 packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts (+146 -76)
📝 packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts (+56 -14)
📝 packages/better-auth/src/adapters/test.ts (+79 -0)
📝 packages/better-auth/src/db/internal-adapter.ts (+145 -84)
📝 packages/better-auth/src/db/with-hooks.ts (+7 -3)
📝 packages/better-auth/src/types/adapter.ts (+9 -0)

📄 Description

Related: https://github.com/better-auth/better-auth/pull/4062


Summary by cubic

Add first-class database transactions with a new Adapter.transaction API and an optional AdapterConfig.transaction. Drizzle and Kysely run real transactions; Memory, MongoDB, and Prisma are non-transactional for now.

  • New Features
    • Added Adapter.transaction(callback) to run operations atomically.
    • Added AdapterConfig.transaction to enable/disable or wire custom transaction behavior.
    • Drizzle: uses db.transaction(cb).
    • Kysely: runs callback inside db.transaction().execute(trx) with a trx-scoped adapter.
    • Memory, MongoDB, Prisma: transaction: false (no transactional behavior yet).

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/4414 **Author:** [@himself65](https://github.com/himself65) **Created:** 9/4/2025 **Status:** ✅ Merged **Merged:** 9/10/2025 **Merged by:** [@himself65](https://github.com/himself65) **Base:** `canary` ← **Head:** `feat-database-transaction-support` --- ### 📝 Commits (5) - [`eff2dbc`](https://github.com/better-auth/better-auth/commit/eff2dbc21bb62a07a53e6a4b62092fc65dde140a) feat: database transaction support - [`0864907`](https://github.com/better-auth/better-auth/commit/0864907e82ad367f479ba2e7027bca6a8d8e981e) feat: database transaction support (#4532) - [`c40fae2`](https://github.com/better-auth/better-auth/commit/c40fae2137d89addef352f715ff7ded2c4af34e5) Merge branch 'canary' into feat-database-transaction-support - [`baad625`](https://github.com/better-auth/better-auth/commit/baad62557b1fcb46fdb028c72d0bd192aa7976b3) docs: update - [`a56fb6c`](https://github.com/better-auth/better-auth/commit/a56fb6c6bf3ce1adb4769cfb3c313928b64b71d7) test: transaction for memory adapter ### 📊 Changes **16 files changed** (+647 additions, -228 deletions) <details> <summary>View changed files</summary> 📝 `docs/content/docs/adapters/mongo.mdx` (+1 -1) 📝 `docs/content/docs/guides/create-a-db-adapter.mdx` (+10 -0) 📝 `packages/better-auth/src/__snapshots__/init.test.ts.snap` (+2 -0) 📝 `packages/better-auth/src/adapters/create-adapter/index.ts` (+33 -12) 📝 `packages/better-auth/src/adapters/create-adapter/types.ts` (+15 -0) 📝 `packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts` (+47 -12) 📝 `packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts` (+61 -21) 📝 `packages/better-auth/src/adapters/memory-adapter/adapter.memory.test.ts` (+4 -0) 📝 `packages/better-auth/src/adapters/memory-adapter/memory-adapter.ts` (+21 -2) 📝 `packages/better-auth/src/adapters/mongodb-adapter/adapter.mongo-db.test.ts` (+11 -3) 📝 `packages/better-auth/src/adapters/mongodb-adapter/mongodb-adapter.ts` (+146 -76) 📝 `packages/better-auth/src/adapters/prisma-adapter/prisma-adapter.ts` (+56 -14) 📝 `packages/better-auth/src/adapters/test.ts` (+79 -0) 📝 `packages/better-auth/src/db/internal-adapter.ts` (+145 -84) 📝 `packages/better-auth/src/db/with-hooks.ts` (+7 -3) 📝 `packages/better-auth/src/types/adapter.ts` (+9 -0) </details> ### 📄 Description Related: https://github.com/better-auth/better-auth/pull/4062 <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Add first-class database transactions with a new Adapter.transaction API and an optional AdapterConfig.transaction. Drizzle and Kysely run real transactions; Memory, MongoDB, and Prisma are non-transactional for now. - **New Features** - Added Adapter.transaction(callback) to run operations atomically. - Added AdapterConfig.transaction to enable/disable or wire custom transaction behavior. - Drizzle: uses db.transaction(cb). - Kysely: runs callback inside db.transaction().execute(trx) with a trx-scoped adapter. - Memory, MongoDB, Prisma: transaction: false (no transactional behavior yet). <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-13 12:20:31 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#5370