Logo文档
数据库

概述

了解 NEXTDEVKIT 中的数据库设置和管理。

NEXTDEVKIT 使用 Drizzle ORM,提供灵活且类型安全的 SQL 查询构建器。它设计为根据您的部署环境与不同的数据库后端平滑集成。

🚀 默认数据库集成

此启动套件预配置为与您选择的部署平台最适合的数据库配合使用:

平台默认数据库最适合
通用/本地PostgreSQL强大功能、本地开发和标准部署。
Cloudflare WorkersCloudflare D1边缘部署和全球低延迟访问。
AWS (with SST)AWS RDS可扩展的托管关系数据库,适用于生产工作负载。

📚 详细设置指南

选择您的数据库后端并遵循详细的设置指南:

📋 数据库架构

您的数据库架构是数据结构的唯一真实来源。

如何修改架构

架构在一个中心位置定义:src/database/schema.ts

要修改数据库结构,您只需编辑此文件。您可以使用 Drizzle 的语法定义表、列和关系。例如,如果您使用 PostgreSQL,表定义将使用来自 drizzle-orm/pg-core 的导入。

// PostgreSQL 表定义示例
import { pgTable, text, timestamp } from "drizzle-orm/pg-core";

export const user = pgTable("user", {
  id: text("id").primaryKey(),
  name: text("name").notNull(),
  email: text("email").notNull().unique(),
  // ... 其他字段
});

启动套件包含支持用户身份验证、订阅等的默认架构。您可以自由自定义它以满足您的需求。

如果您想切换到不同的数据库,可以通过在 src/database/client.ts 中更改数据库客户端来实现。

您可以参考 Drizzle ORM 文档 了解如何使用 ORM 的更多信息。

🔄 迁移

在您修改 src/database/schema.ts 中的架构后,需要生成并应用迁移来更新您的数据库。

  1. 生成迁移: 此命令将您的架构文件与数据库状态进行比较,并在 drizzle 目录中创建新的 SQL 迁移文件。

    pnpm db:generate
  2. 应用迁移: 此命令执行迁移文件以更新您的数据库架构。

    pnpm db:migrate

🔧 如何使用数据库

您可以在应用程序代码中导入和使用数据库客户端来执行查询。

查询示例

以下是如何从数据库获取用户的方法:

import { db } from "@/database/client";
import { user } from "@/database/schema";
import { eq } from "drizzle-orm";

// 根据 ID 获取用户
const userData = await db
  .select()
  .from(user)
  .where(eq(user.id, userId))
  .limit(1);

Drizzle ORM 为构建各种类型的查询提供强大的 API,包括连接、事务和更复杂的过滤。

🔍 数据库工作室

Drizzle Studio 提供强大的 GUI 来直接从浏览器管理您的数据库。

pnpm db:studio

此命令打开一个 Web 界面,您可以:

  • 📊 查看和浏览表数据
  • ✏️ 添加、删除或编辑记录
  • 🔍 运行和测试自定义查询

🔧 环境配置

环境变量

不同的数据库需要不同的环境变量:

# PostgreSQL
DATABASE_URL="postgresql://user:password@localhost:5432/database"

# Cloudflare D1(在 wrangler.jsonc 中配置)
# 不需要环境变量

# AWS RDS(在 aws 密钥管理器中配置)
# npx sst secret set NextDevKitDBPassword xxx --stage production

配置文件

  • PostgreSQL: .env.local.env
  • Cloudflare D1: wrangler.jsonc
  • AWS RDS: sst.config.ts 和环境变量

📚 详细设置指南

选择您的数据库后端并遵循详细的设置指南:


🎯 下一步

现在您了解了数据库架构,深入了解您选择的平台的具体设置: