feat: Prisma 用户落库、迁移与启动环境加载

- Prisma 7 + adapter-pg;prisma.config 与 users 初始迁移\n- AppModule 挂载 PrismaModule;PrismaService 仅依赖 DATABASE_URL\n- main 入口 dotenv/config,避免 Prisma 早于 Config 读 env\n- 短信登录 upsert User;默认昵称 Chat+手机号后四位\n- README / project-solution:目录、迁移规范、用户 avatar_url 说明\n- 依赖:dotenv、@prisma/adapter-pg、pg

Made-with: Cursor
This commit is contained in:
2026-04-22 01:21:11 +08:00
parent 6cc89062e1
commit bc13417efd
12 changed files with 325 additions and 21 deletions

View File

@@ -15,6 +15,22 @@ ChatOne 服务端:基于 **NestJS 11** + **Fastify**,整合多厂商大模
更完整的架构说明见:`docs/project-solution.md`。JWT 最小示例见:`docs/jwt-minimal-nestjs.md`
## 目录
- [TODO当前迭代](#todo当前迭代)
- [技术栈](#技术栈)
- [目录结构(概要)](#目录结构概要)
- [环境要求](#环境要求)
- [安装依赖](#安装依赖)
- [环境变量](#环境变量)
- [常用脚本](#常用脚本)
- [数据库迁移规范Prisma](#数据库迁移规范prisma)
- [启动](#启动)
- [API 说明](#api-说明)
- [数据库与 Prisma](#数据库与-prisma)
- [安全提示](#安全提示)
- [许可证](#许可证)
---
## 技术栈
@@ -120,6 +136,69 @@ yarn install
| `yarn start` | 运行已编译产物 `dist/main.js` |
| `yarn lint` | ESLint需本地配置规则时生效 |
## 数据库迁移规范Prisma
### 开发环境变更流程
1. 修改 `prisma/schema.prisma`(新增表/字段/索引等)
1. 生成并执行迁移:
```bash
npx prisma migrate dev --name <migration_name>
```
1. 如需手动更新 Prisma Client
```bash
npx prisma generate
```
1. 本地验证接口与核心流程
1. 提交代码时必须包含:
- `prisma/schema.prisma`
- `prisma/migrations/**`
### 生产环境发布流程
生产环境禁止使用 `migrate dev`,仅执行:
```bash
npx prisma migrate deploy
```
### 迁移命名规范
迁移名统一使用:`动词_对象_说明`
例如:
- `init_users`
- `add_users_avatar_url`
- `add_chat_sessions`
- `alter_chat_messages_token_count_type`
### 风险控制建议
- 涉及删列、改类型、重命名时,先在测试库验证
- 可能影响历史数据的迁移,先做备份
- 大改动拆分为多次小迁移,避免一次性高风险变更
### 常用命令速查
```bash
# 生成并执行开发迁移
npx prisma migrate dev --name <name>
# 仅更新 Prisma Client
npx prisma generate
# 查看数据库状态
npx prisma migrate status
# 生产环境应用迁移
npx prisma migrate deploy
```
---
## 启动