NextSaas
NextSaas
介绍快速开始配置数据库身份验证邮件国际化 (i18n)支付文件存储部署更新日志

数据库

配置和使用 PostgreSQL 或 SQLite(基于 Drizzle ORM)。

NextSaas 开箱即用支持 PostgreSQL 和 SQLite。只需设置两个环境变量即可切换数据库,无需修改任何代码。

配置

PostgreSQL(默认)

  1. 从任意提供商创建 PostgreSQL 数据库(Neon、Supabase 或本地 Docker)。

  2. 配置 .env:

    DATABASE_ADAPTER="pg"
    DATABASE_URL="postgresql://user:password@host:5432/dbname?sslmode=require"

SQLite

  1. 配置 .env:

    DATABASE_ADAPTER="sqlite"
    DATABASE_URL="file:data/local.db"

    也可以使用内存数据库进行开发:

    DATABASE_URL=":memory:"

使用方式

所有数据库访问通过 getDb() 进行:

import { getDb } from "@/db";

export default async function Page() {
  const db = await getDb();

  const user = await db.users.findById(userId);
  const orders = await db.orders.findByUserId(userId);
  await db.orders.create({ id, userId, amount, ... });
}

也可以导入类型用于组件中:

import { getDb, type Order, type User } from "@/db";

修改 Schema

以添加 phone 字段为例:

  1. 编辑每种数据库对应的 schema 文件:

    // PostgreSQL schema
    export const usersTable = pgTable("users", {
      // ...已有字段
      phone: text("phone"),
    });
    // SQLite schema
    export const usersTable = sqliteTable("users", {
      // ...已有字段
      phone: text("phone"),
    });
  2. 生成并执行迁移:

    bun run db:generate
    bun run db:migrate

迁移(Migrations)

修改 schema 后,运行以下两个命令:

  1. 生成迁移 — 创建 SQL 迁移文件:

    bun run db:generate
  2. 应用迁移 — 对数据库执行迁移:

    bun run db:migrate

Drizzle Studio

使用 Drizzle Studio 浏览和管理数据库:

bunx drizzle-kit studio

添加新的数据库适配器

NextSaas 支持便捷地添加其他数据库。以 MySQL 为例,步骤如下:

  1. 创建 schema 文件 <src>/db/drivers/mysql/schema.ts,使用 Drizzle 的 MySQL 列类型定义相同的表结构。可参考现有的 PostgreSQL 或 SQLite schema。

  2. 创建适配器文件 <src>/db/drivers/mysql/adapter.ts,实现所有数据库查询方法。可参考现有适配器了解需要实现的函数签名。

  3. 在以下文件中注册新驱动:

    • <src>/db/types.ts — 在 DriverType 联合类型中添加 "mysql"
    • <src>/db/factory.ts — 在 createAdapter() 和 createAuthDrizzle() 中添加 case "mysql" 分支
    • <src>/env.ts — 在 DATABASE_ADAPTER 校验规则中添加 "mysql"
  4. 配置 .env:

    DATABASE_ADAPTER="mysql"
    DATABASE_URL="mysql://user:password@host:3306/dbname"
  5. 生成并执行迁移:

    bun run db:generate
    bun run db:migrate

业务代码无需任何修改 — 一切都通过 getDb() 自动适配。

配置

自定义您的 SaaS 品牌和设置。

身份验证

使用 Better Auth 和社交提供商实现安全登录。

On this page

配置PostgreSQL(默认)SQLite使用方式修改 Schema迁移(Migrations)Drizzle Studio添加新的数据库适配器