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. 永远遵循"不重置数据库"的最高安全准则
相关推荐
EasyGBS1 小时前
摄像头还在线,画面已经不能用了?国标GB28181视频平台EasyGBS视频质量诊断怎么用
服务器·安全·音视频
仍然.1 小时前
Redis---缓存
数据库·redis·缓存
Aloudata1 小时前
LookML 语义模型 vs 企业级独立语义层:BI 建模语言能否承担企业语义底座?
数据库·人工智能·数据分析·数据资产·dataagent
细嗅蔷薇@1 小时前
排序和分⻚(order by 、limit)
数据库·oracle
wdfk_prog1 小时前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
逸模1 小时前
BIM在连锁餐饮装修中的应用:不只是画三维图
大数据·数据库·人工智能·物联网·建模
梦想平凡1 小时前
棋牌游戏技术实战(五):从对局事件重新执行规则,核对棋盘和最终状态
数据库·游戏·oracle
白露与泡影2 小时前
Oracle AI Database 26ai RAC 部署步骤、关键命令与一键脚本
数据库·人工智能·oracle
迪康Defender2 小时前
终端安全审批体系设计:如何平衡安全管控与业务连续性
运维·服务器·安全·运维开发·学习方法·业界资讯·远程工作
天天喝旺仔2 小时前
MySQL 索引原理与慢查询优化实战:从 B+ 树到执行计划调优
数据库·sql·mysql·性能优化