当前位置: 首页 > news >正文

Prisma 命令安全指南

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

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

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

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. 环境变量保护

# 生产环境设置
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. 二次确认:重要操作需要二次确认

📚 常用安全命令组合

开发环境

# 1. 创建迁移
npx prisma migrate dev --name add_user_phone# 2. 生成客户端
npx prisma generate# 3. 查看状态
npx prisma migrate status

生产环境

# 1. 应用迁移
npx prisma migrate deploy# 2. 生成客户端
npx prisma generate# 3. 检查状态
npx prisma migrate status

⚠️ 重要提醒

  1. 永远不要在生产环境使用 reset 命令
  2. 永远不要使用 --force-reset 参数
  3. 永远不要在没有备份的情况下执行危险操作
  4. 永远遵循"不重置数据库"的最高安全准则
http://www.dtcms.com/a/482695.html

相关文章:

  • Linux系统下文件操作系统调用详解
  • 网站备案后需要年检吗官方网站搭建
  • 515ppt网站建设北京朝阳区属于几环
  • 5~20.数学基础
  • HTML应用指南:利用POST请求获取全国鸿蒙智行门店位置信息
  • 优先级队列(堆)-295.数据流的中位数-力扣(LeetCode)
  • 大语言模型推理本质与技术演进
  • 福田区网站建最牛视频网站建设
  • 踩坑实录:Go 1.25.x 编译的 exe 在 Windows 提示“此应用无法运行”
  • 学习网站建设有前景没wordPress登不上数据库
  • 互联网大厂Java面试:从缓存技术到安全框架的深度探索
  • 本地部署开源集成工具 Jenkins 并实现外网访问( Linux 版本)
  • HackerNews 播客生成器
  • 新网站优化品牌营销策略四种类型
  • Linux 命令:umount
  • springboot159基于springboot框架开发的景区民宿预约系统的设计与实现
  • LatchUtils:简化Java异步任务同步的利器
  • 数据库设计基础知识(3)关系运算
  • uniapp 编译支付宝小程序canvas 合成图片实例,支付宝小程序 canvas 渲染图片 可以换成自己的图片即可
  • jmeter环境搭建
  • 专业的免费网站建设网站开发怎么销售
  • 浙江网站建设cms免费无限建站
  • Java Redis “底层结构” 面试清单(含超通俗生活案例与深度理解)
  • Windows10停服!7-Zip被爆组合漏洞|附安全指南
  • 从 0 到 1 搭建完整 Python 语言 Web UI自动化测试学习系列 17--测试框架Pytest基础 1--介绍使用
  • 太原市微网站建设上海网站建设服务电话
  • QT6(鼠标键盘事件)
  • Mac应用快速启动器Alfred 5 Powerpack for Mac
  • 【Linux】——基础指令(下)
  • 做网站的域名怎么申请南宁网站建设策划外包