SQLite
将 Better Auth 与 SQLite 集成。
SQLite 是一个轻量级、无服务器、自包含的 SQL 数据库引擎,广泛用于应用中的本地数据存储。
查看更多信息请访问 这里。
示例用法
Better Auth 支持多种 SQLite 驱动。请选择最适合您环境的驱动:
Better-SQLite3(推荐)
Node.js 中最流行且稳定的 SQLite 驱动:
import { betterAuth } from "better-auth";
import Database from "better-sqlite3";
export const auth = betterAuth({
database: new Database("database.sqlite"),
});欲了解更多信息,请参考 Kysely 文档中的 SqliteDialect。
Node.js 内置 SQLite(候选发布版)
node:sqlite 模块在 Node.js 24.15.0 中是一个候选发布版。它要求 Node.js 版本为 22.5.0 或更高,并且自 Node.js 22.13.0 / 23.4.0 起不再需要 --experimental-sqlite 标志。
从 Node.js 22.5.0 开始,您可以使用内置的 SQLite 模块:
import { betterAuth } from "better-auth";
import { DatabaseSync } from "node:sqlite";
export const auth = betterAuth({
database: new DatabaseSync("database.sqlite"),
});要运行您的应用程序,请使用以下命令:
node your-app.jsBun 内置 SQLite
使用 bunx 并添加 --bun 标志执行 CLI 命令,防止出现无法识别 bun:sqlite 模块相关的类型错误,例如:bunx --bun auth@latest generate
您还可以使用 Bun 内置的 SQLite 模块,语法与 Node.js 版本类似:
import { betterAuth } from "better-auth";
import { Database } from "bun:sqlite";
export const auth = betterAuth({
database: new Database("database.sqlite"),
});架构生成与迁移
Better Auth CLI 允许您根据 Better Auth 配置和插件生成或迁移数据库架构。
SQLite 架构生成 | SQLite 架构迁移 |
|---|---|
| ✅ 支持 | ✅ 支持 |
npx auth@latest migrate联接
当 Better Auth 需要在单个查询中从多个表获取相关数据时,数据库联接非常有用
像 /get-session、/get-full-organization 等许多端点都能从此功能中受益匪浅,根据数据库延迟的不同,性能提升可达 2 到 3 倍
自 1.4.0 版本起,Kysely SQLite 方言开箱即支持联接
要启用此功能,请在您的 auth 配置中将 advanced.database.joins 设置为 true
import { betterAuth } from "better-auth";
export const auth = betterAuth({
advanced: {
database: {
joins: true,
},
},
});其他信息
SQLite 通过 Kysely 适配器在底层支持,Kysely 支持的任何数据库同样受到支持。(点击这里了解更多)
如果您在寻求性能提升或优化建议,请查看我们的 性能优化指南。