Prisma 命令安全指南

重要提醒:本指南基于生产环境安全原则,严格遵循"不重置数据库"的最高准则

如果你在使用agent并且使用prisma开发,那么请你一定要注意prisma的命令安全性,已经第二次重置我的dev环境的数据库了,大无语,推荐claude code公益站

🟢 安全命令(不会清空数据库)

1. 代码生成类命令

命令 安全级别 作用 说明
npx prisma generate 完全安全 生成 Prisma Client 代码 只生成 TypeScript 类型,不碰数据库
npx prisma format 完全安全 格式化 schema.prisma 文件 纯文件操作,不涉及数据库

2. 数据库同步类命令

命令 安全级别 作用 说明
npx prisma db push 安全 同步数据库结构 只添加/修改表结构,不删除数据
npx prisma migrate dev 安全 创建和应用迁移 创建迁移文件并应用到开发环境
npx prisma migrate deploy 安全 应用迁移到生产环境 只应用已创建的迁移文件

3. 数据查看类命令

命令 安全级别 作用 说明
npx prisma studio 只读安全 数据库可视化界面 只查看数据,不修改任何内容
npx prisma db seed 安全 执行种子数据 只插入数据,不删除现有数据

4. 状态检查类命令

命令 安全级别 作用 说明
npx prisma migrate status 只读安全 检查迁移状态 只查看状态,不执行任何操作
npx prisma db pull 只读安全 从数据库拉取结构 只读取数据库结构,不修改

🔴 危险命令(会清空数据库)

1. 重置类命令

命令 危险级别 作用 后果
npx prisma migrate reset 极度危险 重置数据库并重新应用迁移 完全清空数据库
npx prisma db push --force-reset 极度危险 强制重置数据库结构 完全清空数据库

2. 删除类命令

命令 危险级别 作用 后果
npx prisma migrate resolve --rolled-back <migration> 危险 回滚特定迁移 可能丢失数据
npx prisma db execute --stdin ⚠️ 需谨慎 执行自定义 SQL 取决于 SQL 内容

🟡 需谨慎使用的命令

1. 数据操作类

命令 谨慎级别 作用 注意事项
npx prisma db execute ⚠️ 需谨慎 执行原始 SQL 取决于 SQL 内容,可能删除数据
npx prisma migrate resolve ⚠️ 需谨慎 解决迁移冲突 可能影响数据完整性

📋 生产环境最佳实践

✅ 推荐操作流程

  1. 开发环境 :使用 npx prisma migrate dev 创建迁移
  2. 测试环境 :使用 npx prisma migrate deploy 应用迁移
  3. 生产环境 :使用 npx prisma migrate deploy 应用迁移
  4. 代码生成 :使用 npx prisma generate 更新客户端

❌ 禁止操作

  1. 绝对禁止 :在生产环境使用任何 reset 命令
  2. 绝对禁止 :使用 --force-reset 参数
  3. 绝对禁止:执行可能删除数据的 SQL 语句

🛡️ 安全防护措施

1. 环境变量保护

bash 复制代码
# 生产环境设置
NODE_ENV=production
DATABASE_URL="mysql://prod_user:${PROD_DB_PASS}@prod.mysql.internal:3306/cps_pro"

2. 备份策略

  • 自动备份:生产环境数据库自动备份
  • 迁移前备份:执行迁移前手动备份
  • 回滚准备:准备回滚方案

3. 权限控制

  • 生产环境:限制数据库操作权限
  • 开发环境:使用只读权限进行测试
  • 代码审查:所有数据库操作需要代码审查

🚨 紧急情况处理

如果误执行了危险命令

  1. 立即停止:停止所有数据库操作
  2. 检查备份:查看是否有可用备份
  3. 联系DBA:联系数据库管理员
  4. 数据恢复:从备份恢复数据

预防措施

  1. 命令别名:为危险命令设置别名提醒
  2. 环境检查:执行前检查当前环境
  3. 二次确认:重要操作需要二次确认

📚 常用安全命令组合

开发环境

bash 复制代码
# 1. 创建迁移
npx prisma migrate dev --name add_user_phone

# 2. 生成客户端
npx prisma generate

# 3. 查看状态
npx prisma migrate status

生产环境

bash 复制代码
# 1. 应用迁移
npx prisma migrate deploy

# 2. 生成客户端
npx prisma generate

# 3. 检查状态
npx prisma migrate status

⚠️ 重要提醒

  1. 永远不要 在生产环境使用 reset 命令
  2. 永远不要 使用 --force-reset 参数
  3. 永远不要在没有备份的情况下执行危险操作
  4. 永远遵循"不重置数据库"的最高安全准则
相关推荐
李广坤5 小时前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1771 天前
《从零搭建NestJS项目》
数据库·typescript
一次旅行2 天前
网络安全总结
安全·web安全
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
red1giant_star2 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql