CLI

用于管理你的项目的内置 CLI。

Better Auth 配备了一个内置的 CLI,帮助你管理数据库架构、初始化项目、为应用生成密钥,并收集你的设置的诊断信息。

生成 (Generate)

generate 命令创建 Better Auth 所需的架构。如果你使用的是 Prisma 或 Drizzle 等数据库适配器,该命令会为你的 ORM 生成正确的架构。如果你使用内置的 Kysely 适配器,它会生成一个 SQL 文件,你可以直接在数据库上执行。

Terminal
npx auth@latest generate

选项

  • --output - 生成的架构保存位置。Prisma 会保存到 prisma/schema.prisma;Drizzle 会保存到项目根目录下的 schema.ts;Kysely 会生成 SQL 文件,保存为项目根目录下的 schema.sql。
  • --config - Better Auth 配置文件路径。默认情况下,CLI 会在 ././utils./libsrc 目录下的这些路径中搜索 auth.ts 文件。
  • --yes - 跳过确认提示,直接生成架构。

迁移 (Migrate)

migrate 命令直接将 Better Auth 架构应用到你的数据库。此功能适用于使用内置 Kysely 适配器的情况。其他适配器需要使用对应 ORM 的迁移工具应用架构。

Terminal
npx auth@latest migrate

选项

  • --config - Better Auth 配置文件路径。默认情况下,CLI 会在 ././utils./libsrc 目录下的这些路径中搜索 auth.ts 文件。
  • --yes - 跳过确认提示,直接应用架构。

使用 PostgreSQL 非默认 schema?

migrate 命令会自动检测你配置的 search_path,并在正确的 schema 中创建表。详情请参阅 PostgreSQL 适配器文档

初始化 (Init)

init 命令允许你在项目中初始化 Better Auth。

Terminal
npx auth@latest init

选项

  • --name - 应用名称。(默认为 package.json 中的 name 属性)
  • --framework - 代码库使用的框架。目前仅支持 Next.js
  • --plugins - 你想使用的插件。可以用逗号分隔多个插件。
  • --database - 你想使用的数据库。目前仅支持 SQLite
  • --package-manager - 你想使用的包管理器。目前支持 npmpnpmyarnbun(默认为初始化 CLI 时使用的管理器)。

信息 (Info)

info 命令提供 Better Auth 设置和环境的诊断信息,适合调试和寻求支持时共享。

Terminal
npx auth@latest info

输出内容

该命令显示:

  • 系统:操作系统、CPU、内存、Node.js 版本
  • 包管理器:检测到的管理器及版本
  • Better Auth:版本及配置(敏感数据自动屏蔽)
  • 框架:检测到的框架(Next.js、React、Vue 等)
  • 数据库:数据库客户端及 ORM(Prisma、Drizzle 等)

选项

  • --config - Better Auth 配置文件路径
  • --json - 以 JSON 格式输出,方便共享或程序使用

示例

# 基本用法
npx auth@latest info

# 指定配置路径
npx auth@latest info --config ./config/auth.ts

# JSON 格式输出
npx auth@latest info --json > auth-info.json

敏感数据如密钥、API Key、数据库 URL 会被自动替换为 [REDACTED],确保安全共享。

密钥 (Secret)

CLI 还提供了生成 Better Auth 实例密钥的方法。

Terminal
npx auth@latest secret

常见问题 (Common Issues)

错误:无法找到模块 X

如果出现此错误,说明 CLI 无法解析 Better Auth 配置文件中的导入模块。我们正在修复许多此类问题,但在此之前,你可以尝试:

  • 移除配置文件中的任何导入别名,改用相对路径。运行完 CLI 后,可以再恢复使用别名。