# Prisma Schema 修改后的操作指南 ## 修改 schema.prisma 后需要执行的步骤 ### 1. 生成 Prisma Client(必须) ```bash cd backend npx prisma generate # 或使用 npm script npm run prisma:generate ``` **作用**:根据最新的 schema 重新生成 Prisma Client,使 TypeScript 类型和代码与数据库结构同步。 --- ### 2. 应用数据库迁移(必须) 根据环境选择不同的方式: #### 开发环境(推荐) ```bash cd backend npx prisma migrate dev # 或使用 npm script npm run prisma:migrate ``` **作用**: - 应用待执行的迁移到数据库 - 如果有新的迁移,会自动创建并应用 - 会重置开发数据库(如果使用 shadow database) #### 生产环境 ```bash cd backend npx prisma migrate deploy # 或使用 npm script npm run prisma:migrate:deploy ``` **作用**: - 仅应用待执行的迁移,不会创建新迁移 - 不会重置数据库 - 适合生产环境使用 #### 快速同步(仅开发环境,不推荐用于生产) ```bash cd backend npx prisma db push ``` **作用**: - 直接将 schema 变更推送到数据库 - 不创建迁移文件 - 适合快速原型开发 --- ### 3. 重启应用(如果正在运行) 应用迁移后,需要重启 NestJS 应用以加载新的 Prisma Client: ```bash # 如果使用 npm run start:dev,会自动重启 # 如果使用其他方式启动,需要手动重启 ``` --- ## 当前状态 ✅ **已完成**: - schema.prisma 已修改(content 字段改为 TEXT) - 迁移文件已创建:`20251118211424_change_log_content_to_text` ⏳ **待执行**: 1. 生成 Prisma Client 2. 应用数据库迁移 3. 重启应用(如果正在运行) --- ## 执行顺序 ```bash # 1. 生成 Prisma Client cd backend npx prisma generate # 2. 应用迁移(开发环境) npx prisma migrate dev # 或生产环境 npx prisma migrate deploy # 3. 重启应用(如果需要) # 如果使用 start:dev,会自动重启 ``` --- ## 验证迁移是否成功 ```bash # 检查迁移状态 npx prisma migrate status # 查看数据库结构 npx prisma studio ``` --- ## 注意事项 1. **生产环境**:务必使用 `prisma migrate deploy`,不要使用 `prisma migrate dev` 2. **备份数据**:在生产环境应用迁移前,建议先备份数据库 3. **迁移冲突**:如果迁移失败,检查错误信息并解决后再继续 4. **类型同步**:每次修改 schema 后都要运行 `prisma generate` 更新类型