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. 永远遵循"不重置数据库"的最高安全准则
相关推荐
垚垚学技术_聚焦云原生2 小时前
Ansible Vault 安全实践:敏感密码、密钥加密存储方案
安全·elasticsearch·ansible
Decay__3 小时前
01_MySQL 体系架构全解 —— 连接层、SQL 层、存储引擎层与 InnoDB 深入
运维·数据库·sql·mysql·架构
鬼手点金3 小时前
提示注入:上下文安全的核心威胁
人工智能·安全·microsoft·机器学习·缓存·prompt
Linux_cy3 小时前
nginx 502 排查手册:九种原因分类、定位命令与检查顺序
linux·运维·服务器·网络·数据库·nginx·ssh
在多学一点3 小时前
MySQL_DDL的基本命令
数据库·mysql·adb
是程序喵呀4 小时前
Redis实现持久化
数据库·redis·缓存
ScilogyHunter4 小时前
Hercules系列安全MCU功能安全原理详解
java·单片机·安全·hercules
Data-Miner4 小时前
不本地部署,大模型怎么安全用?
大数据·人工智能·安全
z06.4 小时前
MySQL存储引擎
数据库·mysql
小徐不徐说4 小时前
数据库存储基础:理解表结构、主键、事务与 BLOB
开发语言·数据库·c++·qt·程序设计