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 22.5.0 或更高版本。
从 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.js 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 migratenpx auth@latest generate联结(实验性)
数据库联结在 Better-Auth 需要从多个表中一次性获取相关数据时非常有用。
如 /get-session、/get-full-organization 等端点极大地受益于此功能,性能可提升 2 到 3 倍,具体取决于数据库延迟。
Kysely SQLite 方言自版本 1.4.0 起内置支持联结。
若要启用此功能,需要在您的 auth 配置中将 experimental.joins 选项设置为 true。
export const auth = betterAuth({
experimental: { joins: true }
});启用此功能后,可能需要执行迁移操作。
其他信息
SQLite 通过 Kysely 适配器在底层支持,Kysely 支持的任何数据库同样受到支持。(点击这里了解更多)
如果您在寻求性能提升或优化建议,请查看我们的 性能优化指南。