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. 永远遵循"不重置数据库"的最高安全准则
相关推荐
Maverick0632 分钟前
Oracle Redo 日志操作手册
数据库·oracle
上海云盾-小余1 小时前
游戏盾与应用防护联动:一站式业务安全防御体系搭建指南
安全·游戏
攒了一袋星辰1 小时前
高并发强一致性顺序号生成系统 -- SequenceGenerator
java·数据库·mysql
W.D.小糊涂1 小时前
gpu服务器安装windows+ubuntu24.04双系统
c语言·开发语言·数据库
云贝教育-郑老师1 小时前
【OceanBase 的多租户架构是怎样的?有什么优势?】
数据库·oceanbase
顶点多余2 小时前
使用C/C++语言链接Mysql详解
数据库·c++·mysql
xiaokangzhe2 小时前
MySQL 数据库操作
数据库·oracle
dashizhi20152 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
网教盟人才服务平台3 小时前
2026数字中国创新大赛-数字安全赛道全面启动!
网络·安全
发际线还在3 小时前
互联网大厂Java三轮面试全流程实战问答与解析
java·数据库·分布式·面试·并发·系统设计·大厂