Drizzle ORM 适配器

Drizzle ORM 是一个强大且灵活的 Node.js 和 TypeScript ORM。它提供了简单直观的 API 来操作数据库,并支持多种数据库,包括 MySQL、PostgreSQL、SQLite 等。 了解更多:Drizzle ORM

示例用法

确保已安装并配置好 Drizzle。 然后,您可以使用 Drizzle 适配器连接到您的数据库。

auth.ts
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { db } from "./database.ts";

export const auth = betterAuth({
  database: drizzleAdapter(db, {
    provider: "sqlite", // 或 "pg" 或 "mysql"
  }), 
  //... 其余配置
});

模式生成与迁移

Better Auth CLI 允许您根据 Better Auth 配置和插件生成或迁移数据库模式。

要生成 Better Auth 所需的模式,请运行以下命令:

模式生成
npx @better-auth/cli@latest generate

要生成并应用迁移,请运行以下命令:

模式迁移
npx drizzle-kit generate # 生成迁移文件
npx drizzle-kit migrate # 应用迁移

附加信息

Drizzle 适配器要求您定义的 schema 与表名相匹配。例如,如果您的 Drizzle schema 将 user 表映射为 users,您需要手动传递 schema 并将其映射到 user 表。

import { betterAuth } from "better-auth";
import { db } from "./drizzle";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import { schema } from "./schema";

export const auth = betterAuth({
  database: drizzleAdapter(db, {
    provider: "sqlite", // 或 "pg" 或 "mysql"
    schema: {
      ...schema,
      user: schema.users,
    },
  }),
});

如果您所有的表都使用复数形式,您可以直接传递 usePlural 选项:

export const auth = betterAuth({
  database: drizzleAdapter(db, {
    ...
    usePlural: true,
  }),
});

如果您正在寻求性能改进或技巧,请查看我们的 性能优化指南

On this page