01MVP 标识01MVP
功能指南数据库

数据库

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:studio

push 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 — 与部署平台集成,一键创建
数据库 | 01MVP Docs | 01MVP Mono