功能指南数据库
数据库
Prisma ORM、数据模型和数据库管理
本页是数据库能力的主指南,先讲 schema、生成、推送和迁移流程;如果你在排查配置来源,再结合 配置体系 一起看。
概览
项目使用 Prisma ORM 连接 PostgreSQL 数据库。
- Schema 位置:
apps/mono-web/prisma/schema.prisma - Prisma Client 生成位置:
apps/mono-web/src/generated/prisma - JSON 类型生成:
prisma-json-types-generator
常用命令
# 生成 Prisma 客户端(修改 schema 后必须执行)
pnpm db:generate
# 将 schema 变更推送到数据库(开发环境,不生成迁移文件)
pnpm db:push
# 创建迁移文件(生产环境推荐)
pnpm db:migrate
# 打开 Prisma Studio 可视化管理
pnpm db:studiopush vs migrate
| 场景 | 命令 | 说明 |
|---|---|---|
| 本地开发、快速迭代 | pnpm db:push | 直接同步 schema 到数据库,不生成迁移文件 |
| 生产部署、团队协作 | pnpm db:migrate | 生成 SQL 迁移文件,可追踪变更历史 |
提示
开发阶段推荐使用 db:push,简单快速。准备上线时再切换到 db:migrate。
核心数据模型
Schema 中的主要模型:
- User — 用户(邮箱、密码、OAuth、微信绑定、个人资料)
- Organization — 组织(社区分部)
- Member — 组织成员关系和角色
- Event — 活动(线上/线下、报名、签到)
- Project — 项目展示
- Contribution — 贡献记录
- Account / Session / Verification — Better Auth 认证相关
使用数据库客户端
// 在服务端代码中导入
import { db } from "@/lib/database";
// 如果需要 Prisma 类型,从生成路径导入
import type { Prisma } from "@/generated/prisma/client";
// 查询示例
const users = await db.user.findMany({
where: { emailVerified: true },
include: { members: true },
});推荐云数据库
- Neon — 免费 PostgreSQL,支持分支和自动暂停
- Zeabur PostgreSQL — 与部署平台集成,一键创建